C: превышен лимит времени в цикле while? - PullRequest
0 голосов
/ 27 января 2019

Я написал следующий код с C:

#include <stdio.h>

int main(void)
{
    int i, quadr, sum;
    i = 0;
    quadr = 0;
    sum = 0;
    while (i < 50);
    {
        quadr = i * i;
        sum = sum + quadr;
        i = i + 1;
    }
    printf("Summe = %d\n", quadr);
    return 0;
}

При компиляции с помощью этой IDE: https://ide.geeksforgeeks.org/FP0bOFBmJf

Я получаю эту ошибку времени выполнения:

Превышен лимит времени

Не могли бы вы помочь мне найти мою ошибку?

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Этот код приводит к бесконечному циклу из-за ; после while.Действительно, часть кода за скобками никогда не выполняется, поэтому i никогда не увеличивается.

Заменить:

while (i < 50);

на:

while (i < 50)
0 голосов
/ 27 января 2019

Проблема, с которой вы столкнулись, возникает в строке

while (i < 50);

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

Исправьте это, написав

while (i < 50) {  /* curly bracket after statement */
  quadr = i * i;
  sum = sum + quadr;
  i = i + 1;
}
0 голосов
/ 27 января 2019

Пожалуйста, удалите точку с запятой через некоторое время.

С while (i < 50);

Для while (i < 50)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...