2017-02-17 16 views
-3

私は過去2日間自分で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は未使用です。何をしたい

は、外側x変数を利用すること

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

または、

for (; x < 10; x++) 

としてforループ文を書き換えることです。表示されているコードに従って、とにかく2つの別々の変数は必要ありません。


注:スコープの詳細については、refer to this previous Q&Aを参照してください。

関連する問題