2009-12-30 60 views
3

我正在編寫這本書「programming in objective c 2.0」,我不明白爲什麼這個程序不工作。基本上我需要建立一個程序來將華氏值轉換成一個攝氏值。超級簡單的程序不能正常工作

我打算只是簡單地解決它,沒有任何對象,只是使用直接的程序方法,任何方式我遇到的問題是,我定義的變量的值代表華氏或氏族值,的隨機。

這裏是我的代碼:

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    float fahrenheit; 
    float celciusConverted; 
    fahrenheit = 27.0; 
    celciusConverted = (fahrenheit - 32)/1.8 ; 
    NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius") , fahrenheit, celciusConverted; 
    [pool drain]; 
    return 0; 
} 
+0

你是什麼意思的「種類隨機」?你每次都沒有得到相同的結果嗎?你能發表一些打印的日誌行嗎? – 2009-12-30 17:52:26

回答

5

在您的NSLog語句中的右括號是錯誤的。它應該是之前;

你有什麼是

NSLog(@"... %f %f ..."), arg1, arg2; 

編譯器似乎並不足夠聰明地看到,沒有%f有相應的參數,與像NSLog()參數可變型函數的一個常見問題。在右括號之後,逗號運算符開始執行,表達式arg1和arg2不起作用。

+1

逗號運算符應該被放在下一個C版本中。它的唯一目的是使這樣的明顯錯誤在語法上仍然有效。 – Chuck 2009-12-30 18:14:02

+0

非常感謝,效果很好,這個地方非常棒,肯定會使用這個網站很多,因爲我剛剛開始用目標c編碼,對編程知識非常有限,但是我的心已設置爲創建iphone應用程序(拿一個數字吧)無論如何真的很感謝幫助。 Nick – nickthedude 2009-12-30 18:17:17

3

函數的參數放在括號內。

NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius", fahrenheit, celciusConverted); 
+0

謝謝!工作,感謝幫助,剛從這裏開始。 – nickthedude 2009-12-30 18:14:40