洛谷p2615,问一下为什么我的代码出来的结果不对
//P2615 [NOIP2015 提高组] 神奇的幻方
#include<iostream>
using namespace std;
int a[40][40] = {};
int main() {
int n=0;
cin >> n;
a[0][n / 2] = 1;
int x = 0, y = n / 2;
for (int i = 2; i < n * n; i++) {
if (x == 0 && y != n-1){
a[n][y + 1] = i;
x = n-1;
y ++;
}
else if (x != 0 && y == n-1){
a[x - 1][0] = i;
x --;
y = 0;
}
else if (x == 0 && y == n-1){
a[x + 1][y] = i;
x ++;
}
else if (x != 0 && y != n){
if (a[x - 1][y + 1] = 0&&x-1>=1&&y+1<=n){
a[x - 1][y + 1] = i;
x --;
y ++;
}
else{
a[x + 1][y] = i;
x ++;
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}