为了账号安全,请及时绑定邮箱和手机立即绑定

回型数组

如何输出回型数组

正在回答

1 回答

/*写一个函数,在函数里把矩阵最外面的一层存到数组里,然后递归调用此函数,一层层的实现。
入口参数是数组的x,y下标,n的值和下一个要存进数组的数。
在这个函数里进行递归调用,每次传入的n值减2,当要存入的数超过n的平方,递归结束。*/

#include <stdio.h>
int a[10][10];
int sum;
void layer(int x,int y,int n,int startnum)
{
int i;
a[x][y] = startnum++;
if(startnum >= sum)
{
return;
}
for(i=0;i<n-1;i++)
{
y++;
a[x][y] = startnum++;
}
for(i=0;i<n-1;i++)
{
x++;
a[x][y] = startnum++;
}
for(i=0;i<n-1;i++)
{
y--;
a[x][y] = startnum++;
}
for(i=0;i<n-2;i++)
{
x--;
a[x][y] = startnum++;
}
if(n%2 == 0)
{
if(startnum >= sum)
{
return;
}
}
y++;
layer(x,y,n-2,startnum);
}
void main()
{
int x=0;
int y=0;
int n;
int i,j;
printf("please input the value of n:\n");
scanf("%d",&n);
getchar();
sum = n*n;
layer(x,y,n,1);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d  ",a[i][j]);
}
printf("\n");
}
getchar();
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

回型数组

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号