给出一个n 代表一个矩阵是nn的 将1~nn个数字蛇形填入数组中 如下图所示![](https://i-blog.csdnimg.cn/blog_migrate/ecec22c6dd56e90491b2b91c90442f34.png)
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N][N];
int main()
{
int i,j,k,m,n;
scanf("%d",&n);
int x=1;
i=0,j=n;
memset(a,-1,sizeof(a));
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
a[i][j]=0;
}
i=0,j=n;
while(1)
{
if(x>n*n)
break;
while(a[i+1][j]==0&&x<=n*n)
a[++i][j]=x++;
if(x>n*n)
break;
while(a[i][j-1]==0&&x<=n*n)
a[i][--j]=x++;
if(x>n*n)
break;
while(a[i-1][j]==0&&x<=n*n)
a[--i][j]=x++;
if(x>n*n)
break;
while(a[i][j+1]==0&&x<=n*n)
a[i][++j]=x++;
if(x>n*n)
break;
}
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}