发布网友
共2个回答
热心网友
1.else要用大括号包起来
2. 函数可以不要返回值
//如果满意请采纳最佳答案~
#include<stdio.h>
void hanruota(int,char, char, char);
int main()
{
int i=0;
printf("请输入需要移动的盘子:");
scanf("%d",&i);
hanruota(i,'A', 'B', 'C');
getchar();
getchar();
return 0;
}
void hanruota(int n, char A, char B, char C)
{
if(1==n)
printf("直接将编号%d的盘子直接从%c柱子移到%c柱子\n",n, A, B, C);
else
{
hanruota(n-1, A, B, C);
printf("将编号为%d的盘子从%c柱子通过%c移动到%c\n",n, A, B, C);
hanruota(n-1, B, A, C);
}
}
热心网友
很简单的问题
你要记住两个递归:
1。调用自身
2。考虑无限数量的调用不能拥有自己的特殊情况,总有结束的时间,那么这个时候,我们专门治疗。
其他里面你这个程序是调用自身的过程中,我相信你能明白这意味着什么。如果在这种特殊情况时,只有一张光盘如何做到这一点,但它是在执行其他?显然不是,在这个时候应该直接从接收另一列,如果它被描述为一列,事实上,答案是这一步,退后一步到n开始产生。