输出第三四条就错了
1 2 3 4
0 0 0 5
0 0 0 6
10 9 8 7
#include <bits/stdc++.h>
using namespace std;
long long n,x,y,ji,a[5005][5005];
int main(){
cin>>n;
x=1,y=1,ji=2;
a[x][y]=1;
while(ji<=n*n){
while(y+1<=n && a[x][y+1]==0){
a[x][y+1]=ji;
++ji;
++y;
}
while(x+1<=n && a[x+1][y]==0){
a[x+1][y]=ji;
++ji;
++x;
}
while(y-1<=n && a[x][y-1]==0){
a[x][y-1]=ji;
++ji;
--y;
}
while(x-1<=n && a[x-1][y]==0){
a[x-1][y]=ji;
++ji;
--x;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<setw(3)<<a[i][j];
}
cout<<endl;
}
return 0;
}