#define N 100
int a[N][N] = {0};
int n = 0;
typedef enum _MOVEDIR
{
move_l = 1, //向左移动
move_r = 2, //向右移动
move_t = 3, //向上移动
move_b = 4, //向下移动
}MOVEDIR;
void hui()
{
int i=0,j=0;
MOVEDIR md = move_r;
for(int k=1;k<=n*n;k++)
{
if(a[i][j] == 0)
a[i][j] = k;
else
k--;
switch(md)
{
case move_l:
{
if(j==0 || a[i][j-1] != 0)
{
md = move_t;
i--;
}
else
j--;
}
break;
case move_r:
{
if(j==n-1 || a[i][j+1] != 0)
{
md = move_b;
i++;
}
else
j++;
}
break;
case move_t:
{
if(i==0 || a[i-1][j] != 0)
{
md = move_r;
j++;
}
else
i--;
}
break;
case move_b:
{
if(i==n-1 || a[i+1][j] != 0)
{
md = move_l;
j--;
}
else
i++;
}
break;
}
}
}
int main()
{
while(1)
{
system("cls");
printf("请输入矩阵大小(<=1则结束:");
scanf("%d",&n);
if(n<=1)
return 0;
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j] = 0;
hui();
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
system("pause");
}
return 0;
}
C语言 回型矩阵
最新推荐文章于 2024-11-25 15:06:05 发布