0

练习: 编写一个程序,使用以下公式将 27° 从华氏度 (F) 转换为摄氏度 (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”编程语言项目中工作。我只需要创建新项目-> OS X -> 命令行工具(类型:基础)取消标记“使用自动引用计数”

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

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

4

2 回答 2

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;
}
于 2012-08-08T17:46:10.803 回答
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;
}

您是否需要解析参数并根据这些参数进行计算?

于 2012-08-08T18:07:17.030 回答