2017-02-17 6 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.

Смежные вопросы