Member 12725947 Ответов: 2

Ошибка превышения лимита времени


#include <stdio.h>
int main(void)
{
  int i,j;
  i=0;
  int big;
  int a[9]={1,2,3,1,4,5,2,3,6};
  for(i=0;i<9;i++)
  {
  	j=i;
  	while(j<(j+2))
  	{
  		if(a[j]>a[j+1])
  		{
  			big=a[j];
  		}
  		else
  		{
  			big=a[j+1];
  		}
  		j++;
  	}
  	printf("%d",big);
  }
return 0;
}


Я получаю превышение лимита времени в качестве вывода. Может ли кто-нибудь, пожалуйста, помочь мне, как эта ошибка может быть удалена?

Что я уже пробовал:

Я даже прокомментировал часть цикла for, но все равно получаю тот же результат.
Может ли кто-нибудь, пожалуйста, подсказать, что может быть возможной причиной этого?

[no name]

Где это вы печатаете "превышен лимит времени" в своем неформатированном некомпилируемом коде?

2 Ответов

Рейтинг:
2

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

MattTelles

Я не знаю, что такое ошибка "превышение лимита времени", но эта строка:

а(Дж&л;(J в+2))

никогда не может быть правдой, поэтому у вас есть бесконечный цикл.

Мэтт


CPallini

:-)
5.

Richard Deeming

"никогда не может быть ложный", верно? :)

Кроме технически, это возможно, если проверка переполнения целых чисел отключена:
j = 2147483646, j + 2 = -2147483648