#include<stdio.h>
#include<windows.h>
#include<conio.h>
//数组大小,可变化
#define ARRAY_SIZE 21
int n, i, j, direction = 0;
void display(int s[ARRAY_SIZE][ARRAY_SIZE])
{
COORD pos = {0};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
for(int i = 0; i < ARRAY_SIZE; i++)
{
for(int j = 0;j < ARRAY_SIZE;j++)
if(0 != s[i][j])
printf("%3d", s[i][j]);
else
printf(" ");
putchar('\n');
}
putchar('\n');
printf("行:%3d 列:%3d 方向:%3d", i, j, direction);
}
void ArraySet(int s[ARRAY_SIZE][ARRAY_SIZE], int i, int j, int value, int d)
{
s[i][j]= value; display(s); Sleep(10); direction = d;
}
int main()
{
int s[ARRAY_SIZE][ARRAY_SIZE] = {0};
for(n = 0; n <= ARRAY_SIZE/2; n++)
{
for(i = n, j = i; j < ARRAY_SIZE - n; j++)
ArraySet(s, i, j, n + 1, 1);
for(++i, --j; i < ARRAY_SIZE - n; i++)
ArraySet(s, i, j, n + 1, 2);
for(--i, --j; j >= n; j--)
ArraySet(s, i, j, n + 1, 3);
for(--i, ++j; i >= n + 1; i--)
ArraySet(s, i, j, n + 1, 4);
}
}
运行效果: