2011-08-09 55 views
0
int main (int argc, const char * argv[]) 
{ 

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

    int n, number, triangularNumber; 
    NSLog(@"What Triangular Number Do You Want?"); 
    scanf(@"%i", &number); 
    triangularNumber = 0; 

    for (n = 1; n <= number; ++n) 
     triangularNumber += n; 
     NSLog(@"Triangular Number %i is %i", number, triangularNumber); 

    [pool drain]; 
    return 0; 
} 

輸出當我寫一個整數是這樣的:簡單的Objective-C程序不工作

Triangular Number 0 is 0 
+0

由於使用數字作爲指針,因此引用它的值爲*數字 – Dan

回答

2

您的輸入數字爲0,並且for循環中的條件從1開始。因此,循環從不執行。

0

它應該是:

for (n = 1; n <= number; ++n) { 
     triangularNumber += n; 
     NSLog(@"Triangular Number %i is %i", number, triangularNumber); 
} 

在你寫的方式,解析爲:

for (n = 1; n <= number; ++n) { 
    triangularNumber += n; 
} 
NSLog(@"Triangular Number %i is %i", number, triangularNumber); 

而且由於輸入(數字)是0(如指示由印刷品提供)循環不會發生,但印刷線。

+4

代碼上的縮進具有誤導性。我不認爲他意味着記錄每一箇中間值,只是最終的結果。 – highlycaffeinated

+0

是的,但正如我在scanf所說,無論我寫的詮釋應分配給號碼,那麼數字應該有一個值 –