求回答 一定关注
#include<bits/stdc++.h>
using namespace std;
int x,y,z,mat[45][45],g_x,g_y,n;
int main(){
cin>>n;
mat[n/2][1]=1;
g_x=n/2;
g_y=1;
for(int o=2;o<=n*n;o++){
if(g_y==1&&g_x!=n&&g_x+1<=n&&g_x+1>=1){
mat[g_x+1][n]=o;
g_x+=1;
g_y=n;
}else if(g_y!=1&&g_x==n&&g_y+1<=n&&g_y+1>=1){
mat[1][g_y+1]=o;
g_x=1;
g_y+=1;
}else if(g_y==1&&g_x==n&&g_x-1<=n&&g_x-1>=1){
mat[g_x-1][g_y]=o;
g_x-=1;
}else if(g_y!=1&&g_x!=n&&mat[g_x+1][g_y-1]==0&&g_x+1<=n&&g_y-1<=n&&g_x+1>=1&&g_y-1>=1){
mat[g_x+1][g_y-1]=o;
g_x+=1;
g_y-=1;
}else{
mat[g_x][g_y+1]=o;
g_y+=1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
return 0;
}