C语言 请教一下下面程序的其中一段是怎么执行的? 25

这是C语言书上的一个例题(Hanoi塔问题)我就想问一下else里面的两个调用函数语句在输入的h大于2以上是怎么执行的,我都看蒙了,一直搞不懂。请教一下大神。如能解答,万... 这是C语言书上的一个例题(Hanoi塔问题)
我就想问一下else里面的两个调用函数语句在输入的h大于2以上是怎么执行的,我都看蒙了,一直搞不懂。请教一下大神。如能解答,万分感谢!!

# include<stdio.h>
void move(int n,int x,int y,int z)
{
if(n==1)
printf("%c--->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c--->%c\n",x,z);
move(n-1,y,x,z);
}
}
int main(void)
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
return 0;
}
展开
 我来答
RAP一GOD
2017-08-12
知道答主
回答量:25
采纳率:0%
帮助的人:6.8万
展开全部
这是递归函数,再次执行move函数直到n=1的时候运行if里面的函数,在反过来运行下面的函数
追问
能不能说的稍微再简单点啊,比如当n=3时,else下面的第2行move(2,x,z,y)这个语句是执行两次if里面n==1下面的输出语句么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式