简单的实现了一下蛇形填数,代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 5
void FillNum(int A[][N])
{
int i, x, y;
x = 0, y = 0;
i = 1;
while (i <= N*N)
{
if (!x && !y)
A[x][y] = i++;
while (!A[x][y + 1] && y + 1< N)
{
A[x][y + 1] = i++;
y++;
}
while (!A[x + 1][y] && x + 1< N)
{
A[x + 1][y] = i++;
x++;
}
while (!A[x][y - 1] && y - 1 >= 0)
{
A[x][y - 1] = i++;
y--;
}
while (!A[x - 1][y] && x - 1 >= 0)
{
A[x - 1][y] = i++;
x--;
}
}
}
void PrintArray(int A[][N])
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%4d ", A[i][j]);
}
printf("\n");
}
}
int main()
{
int Table[N][N];
memset(Table, 0, sizeof(Table));
FillNum(Table);
PrintArray(Table);
printf("\n");
system("pause");
return 0;
}