c语言关于函数的递归调用问题

不是很明白这个代码的意思,只知道不断地在调用自己,但是为啥输出的是五个一。谁能解释一下执行的过程.... 不是很明白这个代码的意思,只知道不断地在调用自己,但是为啥输出的是五个一。谁能解释一下执行的过程. 展开
 我来答
百度网友bcee5c2
2018-12-03 · TA获得超过1959个赞
知道大有可为答主
回答量:5621
采纳率:84%
帮助的人:273万
展开全部
一般来说是自己调用自己,一般有两个分支,一个分支是调用自己,还有一个分支是结束条件如求n! int f(int n) { if(n==1) //这个是结束条件 return 1; else //这个是调用自己的分支 return n*f(n-1); } 还有一个比较复杂一点,是双向调用,也就是a函数调用b函数,b函数在调用a函数这样循环调用,其实基于这个道理,还有多个函数互相调用,不过这样的情况很少见但万变不离其宗,每个函数都有两个分支,一个是结束条件,一个是调用函数
听不清啊
高粉答主

2018-12-03 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
它是在“不断地将‘形参的值-1后’再调用自己”,且形参的值不小于0。
而且在形参为正数时,返回前打印一行“1”。
因为最初的形参是5,所以共打印5行1。
更多追问追答
追问
执行Func(n-1)后,是执行printf语句还是继续执行Func(n-1).
追答
执行完Func(n-1)后,才是执行printf语句
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6ab0df5
2018-12-03
知道答主
回答量:29
采纳率:16%
帮助的人:8.4万
展开全部
Func(5),n=5,此时n>0,执行Func(4),输出1
Func(4),执行Func(3),输出1
Func(3),执行Func(2),输出1
Func(2),执行Func(1),输出1
Func(1),执行Func(0),输出1
Func(0),0>0为假,return,故输出5个1
追问
是每执行一次Func(n-1)后,都执行一次printf?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式