我自己编译器跑起来没问题,但交到洛谷上就有四个wa
#include <stdio.h>
int main ()
{
/*基本思路:
1.先向右走,超出边界或遇见数字向下走
2.向下走……*/
int n,i,j,k,count=1;
int x=0,y=0;
int sum=1;
scanf ("%d",&n);
int a[10][10]={0};
a[0][0]=1;
// 先向右走
while (sum <n*n){ //得让他填满,如果直走一圈,不行
while (a[y][x+1]==0 && x+1<n ){ //while 里面也可以放条件,代替if ,还能循环
count ++;
x++;
sum++;
a[y][x]=count;
}
// 向下走
while (a[y+1][x]==0 && y+1<n){
count++;
sum++;
y++;
a[y][x]=count;
}// 向左走
while (a[y][x-1]==0 && x-1>=0){
count ++;
sum++;
x--;
a[y][x]=count;
} // 向上走
while(a[y-1][x]==0 && y-1>=0){
count ++;
sum++;
y--;
a[y][x]= count;
}
}
for (j=0;j<n;j++){
for (k=0;k<n;k++){
printf ("%3d ",a[j][k]);
}
}
return 0;
}