Вы дуете стек с arr
и color
.Предположительно, когда ваш вызов scanf
закомментирован, компилятор оптимизирует все эти переменные, но когда он присутствует, он пытается выделить память в стеке.
Сделать переменные глобальными и считывать данные из стековой памяти противкуча памяти.
#include<stdio.h>
int arr[10002][10002];
int color[10002];
int main()
{
int neigh;
scanf("%d",&neigh);
return 0;
}