/*
填数顺序示范:
7 8 1
6 9 2
5 4 3
*/
#include <stdio.h>
#define max 105
int arr[max][max];
int main(void)
{
int n, i, j, x, y, c;
scanf("%d",&n);
c = arr[x = 0][y = n - 1] = 1;
while(c < n * n)
{
while(x < n - 1 && !arr[x + 1][y])
arr[++x][y] = ++c;
while(y > 0 && !arr[x][y - 1])
arr[x][--y] = ++c;
while(x > 0 && !arr[x - 1][y])
arr[--x][y] = ++c;
while(y < n - 2 && !arr[x][y + 1])
arr[x][++y] = ++c;
}
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
printf("%-3d ",arr[i][j]);
printf("\n");
}
return 0;
}
蛇形填数 — C语言
最新推荐文章于 2023-03-22 13:21:04 发布