把int s[20][20];提前
by Mlao @ 2024-03-10 12:00:24
@[WFong](/user/1089320) 加一个ios,然后把s定义放在了主函数前面就过了,悬一关
```
#include<bits/stdc++.h>
using namespace std;
int s[20][20];
int main(){
ios::sync_with_stdio(false);
cout.tie(NULL); cin.tie(NULL);
int a=0,x=1,y=0;
cin>>a;
int m=1;
while(m<=a*a)
{
while(y<a&&!s[x][y+1])
s[x][++y]=m++;
while(x<a&&!s[x+1][y])
s[++x][y]=m++;
while(y>1&&!s[x][y-1])
s[x][--y]=m++;
while(x>1&&!s[x-1][y])
s[--x][y]=m++;
}
for(int i=1;i<=a;i++)
{
for (int j=1;j<=a;j++)
cout<<setw(3)<<s[i][j];
cout<<"\n";
}
return 0;
}
by QoQ_ @ 2024-03-10 12:08:56
求关 AC
```cpp
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
int a[15][15]={0};
int x=1,y=1;
int i=1,j;
a[x][y]=i;
while(i<n*n)
{
while(y+1<=n&&a[x][y+1]==0)
{
y++;i++;
a[x][y]=i;
}
while(x+1<=n&&a[x+1][y]==0)
{
x++;i++;
a[x][y]=i;
}
while(y-1>=1&&a[x][y-1]==0)
{
y--;i++;
a[x][y]=i;
}
while(x-1>=1&&a[x-1][y]==0)
{
x--;i++;
a[x][y]=i;
}
}
for(i=1;i<=n;i++)
{
putchar(' ');
for(j=1;j<=n;j++)
{
printf("%2d ",a[i][j]);
}
printf("\n");
}
return 0;
}
by HEROBRINEH @ 2024-03-10 12:31:56