Это невозможно диагностировать без дополнительного контекста, но вот огромный красный флаг:
for(i=1;i<n+1;i++)
{
scanf("%d",&arr[i]);
}
Вы не показываете объявление arr
, но 1-индексирование в массиве - очень хороший способ выстрелить себе в ногу. Помните, что массив N-элементов в C имеет допустимые индексы от 0 до (N - 1) включительно.
Если вышеприведенное переписывает массив, вы получаете неопределенное поведение, что, конечно, может привести к преждевременному завершению внешнего цикла.
ОБНОВЛЕНИЕ : Теперь, когда вы показываете объявление arr
, мы можем посмотреть:
int t,i,n,arr[n+1],j,k,l,flag,x,y;
Это ... очень сломано, поскольку n
неинициализирован в точке, где он используется в VLA, это дает вам неопределенное поведение. Я на самом деле немного удивлен, что ваш компилятор принял это. Я попытался создать его на ideone.com , но он не удался, сказав:
error: ‘n’ is used uninitialized in this function [-Werror=uninitialized]
Возможно, вам следует обновить свой компилятор и убедиться, что вы включили все возможные предупреждения, поскольку вы, кажется, немного не уверены в основах языка.