讲道理,我不是很会做这种方阵的题,但是这题和蛇形填数的思路很像,核心代码也差不多
5
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a[105][105]={0};
int x=1,y=1,z=1,i=1,j,n;
scanf("%d",&n);
while(i<=pow(n,2))
{
while(x<=n && a[x][y]==0)
{
a[x++][y]=z++;
i++;
}
x--;y++;
while(y<=n && a[x][y]==0)
{
a[x][y++]=z++;
i++;
}
x--;y--;
while(x>=1 && a[x][y]==0)
{
a[x--][y]=z++;
i++;
}
x++;y--;
while(y>=1 && a[x][y]==0)
{
a[x][y--]=z++;
i++;
}
x++;y++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%-4d",a[i][j]);//一定要写这个-4
}
printf("\n");
}
return 0;
}