2015-08-11 4 views
0

Кто-нибудь знает, в чем проблема с этим кодом? Даже после ввода> 1 строки программа закончится преждевременно в конце кода, не допуская повторного вложенного воспроизведения. Спасибо.Петля для использования в то время как

#include <stdio.h> 
int main() { 
     int line; 
     unsigned int sum = 0; 
     int input; 
     float average; 
     printf("Enter number of input lines:"); 
     scanf("%d", & line); 
     while (line > 0) { 

      while (input != -1) { 
       printf("Enter input line:"); 
       scanf("%d", & input); 
       sum += input; 
       printf("sum is %d", sum); 
       printf("Line is %d", line); 
      } 
      line--; 
      printf("Line is %d", line); 
     } 
     return 0; 
    } 

ответ

1

В вашей программе условие внутреннего цикла основано на переменной input. Но это значение устанавливается как -1 во внутреннем цикле перед выходом из внутреннего цикла. Но значение переменной input никогда не изменяется после того, как оно становится -1.

Изменить следующим образом ввести внутренний цикл на каждой итерации внешнего цикла,

printf("Enter number of input lines:"); 
scanf("%d",&line); 
while (line>0) { 
input = 0; /* This line is additional */ 
while (input != -1) { 
    printf("Enter input line:"); 
    scanf("%d",&input); 
    sum += input; 
    printf("sum is %d",sum); 
    printf("Line is %d",line); 
    } 
    line--; 
    printf("Line is %d",line); 
} 
+0

Спасибо так много! Некоторое время думал. – Luna

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