n>2时,程序似乎进入了死循环。
麻烦大佬帮忙看看
int main(){
int n;
scanf("%d",&n);
int num[n][n];
memset(num,0,sizeof(num));
num[0][0]=1;
int x=0,y=0;
int X=1,Y=0;
int i=1;
while(i<n*n){
while(x+X>=0&&y+Y>=0&&x+X<n&&y+Y<n&&num[y+Y][x+X]==0){
num[y+Y][x+X]=++i;
x+=X;
y+=Y;
}
int a=x;
x+=-a-y;
y+=a-y;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
printf("%d",num[i][j]);
printf("\n");
}
return 0;
}