整份代码试图形成奇数阶幻方,但有问题,能看一下码? 样例: 输入
3
输出
4 9 2
3 5 7
8 1 6
#include <cstdio>
int a[1009][1009];
int main(){
int n;
scanf("%d",&n);
int x = n,y = (n+1)/2,k = 1;
a[x][y] = 1;
x = 1;
y++;
k++;
while(k <= n*n){
a[x][y] = k;
k++;
x++,y++;
int flag = 0;
if(x>n&&y>n){
x = 1;
y = 1;
continue;
}else{
if(x>n){
x = 1;
continue;
}
if(y>n){
y = 1;
continue;
}
}
if(a[x][y]!=0){
y--,x--;
flag = 1;
}
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
}