2017-02-17 161 views
-3

過去兩天我一直在努力學習C,而且我似乎無法讓這個程序運行。對不起,這可能是一個微不足道的問題,剛開始,似乎無法找到一個快速的答案。代碼沒有運行但編譯?

#include <stdio.h> 

void chopper() { 
    int z = 0; 
    while (z < 10) { 
     printf("They equal and this code works!"); 
     z++; 
    } 
} 

int main() { 
    int x = 0; 

    int flag = 0; 

    if (flag == 1) { 
     chopper(); 
    } 
    for (int x; x < 10; x++) { 
     printf("%d\n", x); 
     if (x == 10) { 
      flag == 1; 
     } 
    } 
    return 0; 
} 
+4

你真的想用這段代碼完成什麼? – haccks

+4

你能告訴我們期望的輸入和輸出是什麼嗎? 「不運行」是什麼意思?這裏是關於如何提問的指南:http://stackoverflow.com/help/mcve –

+0

我不確定它是如何編譯的,並且不會抱怨'x'的重新聲明。 – Shravan40

回答

4

您有多個問題。

  • flag == 1;裏面if是無用的。可能你的意思是想要flag = 1;
  • 在for循環中,x未初始化。
  • 外部範圍x未使用。

你想要的是重寫for循環語句作爲

for (x; x < 10; x++) 

,或者

for (; x < 10; x++) 

利用外x變量。根據顯示的代碼,無論如何你都不需要兩個單獨的變量。


注意:要了解更多關於範圍,請refer to this previous Q&A