关键是这两个点每次还不是同一个点。求助大佬帮忙看看是我的锅吗?
#include <iostream>
using namespace std;
int a[41][41]={};
int n;
int i;
int main(){
cin >> n;
a[1][n/2+1]=1;
i=1;
int x=1,y=n/2+1;
int x1,y1;
while(i<n*n){
x--;
y++;
i++;
if(x==0)x=n;
if(y==n+1)y=1;
if(!a[x][y]) a[x][y]=i;
else {
x=x1+1;
y=y1;
if(x==n+1)x=1;
a[x][y]=i;
}
x1=x;
y1=y;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout <<a[i][j]<<" ";
}
cout <<endl;
}
return 0;
}