“在Objective-c编程”第3次Kochan练习4.2

时间:2012-08-08 17:31:42

标签: objective-c

练习: 编写一个程序,将华氏度(华氏度)(F)的27°转换为摄氏度 (C)使用以下公式:

  

C =(F-32)/ 1.8

请注意,您无需定义类来执行此计算。简单评估 表达就足够了。

这是我的代码:

#import <Foundation/Foundation.h>
int main (int argc, const char *argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

        float C;
        float F;
    F = 27;
    C=(F-32)/1.8;
    NSLog (@"27 degrees Fahrenheit is %f degrees Celsius." , C);
    [drain pool];
        return 0;
}

“构建失败”

在官方论坛上有建议以这种方式写出来:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

   double C, F;
   F=27;
   C=(F-32)/1.8;
   int c=C;

    NSLog(@"%g degrees Fahrenheit equals %i centigrades!", F, c);

[pool drain];
    return 0;
}

但它也给了我“失败”的消息。 什么是不正确的?

更新

问题解决了。

我没有正确设置项目的初始设置。 我在其他“C”编程语言项目中工作。 我不得不创建新项目 - &gt; OS X - &gt;命令行工具(类型:基础)取消标记“使用自动引用计数”

但最好的部分 - 我获得了成功编译程序的奖励:

2012-08-09 00:20:29.214 4.2[19452:403] 27 degrees Fahrenheit is -2.777778 degrees Celsius.

谢谢@trojanfoe,@ john.k.doe,@ drewk,@hol

2 个答案:

答案 0 :(得分:0)

这有效:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {            
        float C;
        float F;
        F = 27.0;
        C=(F-32.0)/1.8;
        NSLog (@"27 degrees Fahrenheit is %f degrees Celsius." , C);
    }
    return 0;
}

这样做:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    double F=27.2;
    double C=(F-32.0)/1.8;

    NSLog(@"%g degrees Fahrenheit equals %g centigrade!", F, C);

    [pool drain];
    return 0;
}

答案 1 :(得分:0)

因为你没有使用对象,所以这样做。平原C.

int main(int argc, const char * argv[])
{

    double C, F;
    F=27;
    C=(F-32)/1.8;
    int c=C;

    printf("%g degrees Fahrenheit equals %i centigrades!", F, c);

    return 0;
}

你需要解析参数并根据这些参数进行计算吗?