2013-06-25 86 views
1

我已經很費力地學習了C幾小時,並想嘗試一個Fizzbizz程序來測試我的知識到目前爲止。爲什麼C中的這個Fizzbuzz程序不能工作?

這是我寫的代碼:但是編譯器返回

In function 'main': Line 14: error: expected ';' before '{' token

#include <stdio.h> 

int main() { 
int i; 
for (i = 1; i <21; i++) { 
    if (i % 3 == 0) { 
     if (i % 5 == 0) { 
      printf("Fizzbuzz\n"); 
     } 
     else { 
      printf("Fizz\n"); 
     } 
    } 
    elseif (i % 5 == 0) { 
     if (i % 3 == 0) { 
      printf("Fizzbuzz\n"); 
     } 
     else { 
      printf("Buzz\n"); 
     } 
    } 
    else { 
     printf("%d", i); 
    } 
} 
return 0; 
} 

我懷疑的錯誤是很微不足道,但你能解釋爲什麼它不工作,如果我至少有正確的想法?

+0

順便說一句,你永遠不會得到第二Fizzbuzz。 – rein

+1

因爲'elseif'不是一個有效的關鍵字,所以編譯器假定它是一個函數調用,它不能立即跟隨一個'{'。 –

回答

1

elseif不是C關鍵字;你需要else if

而且,你可能要在數情況下,一個新行:

printf("%d\n", i); 
6

我想,你需要「else if」而不是「elseif」。

相關問題