章节
问答
课签
笔记
评论
占位
占位

递归函数练习

有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大两岁。问第2个人,说比第1个人大两岁。最后 问第1个人,他说是10岁。请问第5个人多大?

程序分析:

利用递归的方法,递归分为回推和递推两个阶段。要想知道第5个人岁数,需知道第4人的岁数,依次类推,推到第1人(10岁),再往回推。

任务

?不会了怎么办


 

||
1
#include <stdio
    .h>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / weixin_慕后端3362662
你试试从2到5(2-1+2+(3-1)+2+(4-1)+2+(5-1)+2=?                           看到这应该能悟出来了

最新回答 / 斑马还没有睡丶
第一个判断写n==1

最新回答 / 小机灵鬼er
printf("第5个人的年龄是%d岁",ACE(5)); 因为他定义了第5个人的年龄,不定义的话直接用 结果目前是一样的<...图片...>

最新回答 / 雨同学
agef错了 是fifthAge

最赞回答 / 慕仰5583565
#include <stdio.h> int getAge(n){    int age;    if(n==1)    return 10;    else    age = getAge(n-1)+2;    return age;}int main() {    int fifthAge=getAge(5); printf("第5个人的年龄是%d岁", fifthAge);  return 0;}

最新回答 / 总觉得头顶有点凉
肯定的,被调用的n的实参初始值为5.if(n=1)中的赋值表达式(n=1)的值为1。条件成立返回10。😀

最新回答 / 慕圣4515057
如果return age在大括号里的话他会在每次的else中都被return回去了,也就是每次都被回归(意思是这个意思,具体怎么说我也不清楚,意会即可)一直到第一个人的时候就成了10-2,最终输出8是吧?我一开始也是这样的,看了一楼的回答才恍然大悟。

最赞回答 / 年少无知ing
 int num后面没有分号

最新回答 / weixin_慕标2297268
因为你在if的括号里打了三个等于

最新回答 / weixin_慕标2297268
自创函数少了括号,括号里少了参数,ffifthAge(5)改成int ffifth=Age(5),fifthAge改成ffifth。

最新回答 / weixin_慕瓜8459872
函数要有传递参数的地方int getAge(int a){    if (a==1);        return 10;    else        return getAge(a-1)+2;}

最新回答 / Mu_Dong9666
没有用到if else的递归函数

最新回答 / 慕的地3394807
你定义的函数体{}呢???还有你最后的把ageNumber(5);存到age变量里了,那你应该输出age才对啊,要不就直接输ageNumber(5),没有 int age=ageNumber(5)这一步

+ 我来回答 回答最高可+2积分
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言