一个c语言问题(输出回型矩阵)

2024-11-16 07:37:41
推荐回答(2个)
回答1:

效果图 最下面的连接 我另一个百度id 的blog
/* * * * * * * * * * * * * * * * * * * * * * * * * *
编译平台 : Windows XP
程序作者 : veket_linux
编译器 : GCC 3.4.2
* * * * * * * * * * * * * * * * * * * * * * * * * */

/*
螺旋矩阵-撞墙法
设置上下左右四面墙,遇到撞墙,改变移动方向,墙向内收缩
*/
#include
int main()
{
int a[5][5];
int i;
int j;
int n;
int top;
int botton;
int left;
int right;
int d;

n = 25;
i = 0;
j = 0;
top = 0;
botton = 5;
left = -1;
right = 5;
d = 0;
for(n=1;n<=25;n++)
{
if(d == 0)
{
if(j==right)
{
j--;
right--;
d = 1;
i++;
n--;
continue;
}
else
{
a[i][j] = n;
j++;
}
}

if(d == 1)
{
if(i==botton)
{
i--;
botton--;
d = 2;
j--;
n--;
continue;
}
else
{
a[i][j] = n;
i++;
}
}

if(d == 2)
{
if(j==left)
{
j++;
left++;
d = 3;
i--;
n--;
continue;
}
else
{
a[i][j] = n;
j--;
}
}

if(d == 3)
{
if(i==top)
{
i++;
top++;
d = 0;
j++;
n--;
continue;
}
else
{
a[i][j] = n;
i--;
}
}
}

printf("the array is:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}

回答2:

每太看懂具体是回型是什么意思,能再举个例子么
比如如果n = 5,输出三层还是2层?