@[maxiaohang0113](/user/1170855) 把数组清零就过了,挺玄学的,我也不知道为什么。
by __yun__ @ 2024-02-15 17:41:48
建议将数组开在主函数外部
by __yun__ @ 2024-02-15 17:42:15
像这样
```cpp
#include <bits/stdc++.h>
int n,i,j;
long long a[45][45];//数组大小依据数据范围
int main()
{
scanf("%d",&n);
j = n/2;
a[i][j] = 1;
for(int k = 2;k <= n*n;k++)
{
if(i == 0 && j != n-1) i = n-1,j++;
else if(j == n-1 && i != 0) j = 0,i--;
else if(i == 0 && j == n-1) i++;
else if(i != 0 && j != n-1)
{
if(a[i-1][j+1] == 0) i--,j++;
else i++;
}
a[i][j] = k;
}
for(i = 0;i < n;i++)
{
for(j = 0;j < n;j++) printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
```
by __yun__ @ 2024-02-15 17:43:49
@[__yun__](/user/749539) [已过,谢谢](https://www.luogu.com.cn/record/146964194)
by maxiaohang0113 @ 2024-02-15 20:27:25