给干成停止工作了。。。逻辑哪里有误吗?
#include<bits/stdc++.h>
using namespace std;
int n,a[40][40],x[2005][2];
int main(){
cin>>n;
a[1][n/2+1]=1;
x[1][1]=1;
x[1][2]=n/2+1;
for(int i=2;i<=n*n;i++){
if(x[i-1][1]==1){
if(x[i-1][2]!=n){
a[n][x[i-1][2]]=i;
}
else{
a[x[i-1][1]+1][x[i-1][2]]=i;
}
}
else{
if(x[i-1][2]==n){
a[x[i-1][1]-1][n];
}
else{
if(a[x[i-1][1]+1][x[i-1][1]+1]==0){
a[x[i-1][1]+1][x[i-1][1]+1]=i;
}
else{
a[x[i-1][1]-1][x[i-1][2]]=i;
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;i<=n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}