Возвращает неправильный ответ

#c

#c

Вопрос:

Когда я запускаю этот код, он повторяется, но затем возвращает «Ответ равен 0», хотя должен быть «Ответ равен 10».

Почему это?

 #import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
     int i;
     for (int i = 0; i < 12; i  ){ 
        if (i % 3 == 0) {
            continue;
         }
         printf("Checking i = %dn", i);
         if (i   90 == i * i) {
             break;
         }
     }
    printf("The answer is %d.n", i);
    return 0;


}
  

Ответ №1:

  int i;
 for (int i = 0; i < 12; i  ){ 
      ^^^^^
  

i Внутри цикла не совпадает с i внешним циклом.

Замените это на:

  int i;
 for (i = 0; i < 12; i  ){ 
  

Ответ №2:

В вашем коде есть два отдельных i кода, внутренний из которых скрывает внешний. Более того, оператор print вызывает неопределенное поведение, потому что внешний i неинициализированный для чтения.

Скажем, for (i = 0; i < 12; i ) использовать внешнюю переменную вместо объявления новой переменной.

Ответ №3:

На самом деле вы i снова объявляете внутри for цикла. Сделайте свой цикл for следующим образом:

for (i = 0; i < 12; i )

Затем он сохранит свое значение после выхода из цикла.

Ответ №4:

В вашем коде объявлены два отдельных int i ‘s.

Ответ №5:

Если вы хотите использовать i вне цикла for, не объявляйте его внутри цикла for

Итак, ваш цикл for должен быть похож

 for (i = 0; i < 12; i  )