| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:一段递归的代码 不理解
取消只看楼主 加入收藏
sainimu78
Rank: 2
等 级:论坛游民
帖 子:57
专家分:26
注 册:2010-1-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
一段递归的代码 不理解
1  int age(int n)
2  {
3  int c;
4  if(n==1)
5  c=10;
6  else
7  c=age(n-1)+2;
8  return c;
9  }
10 main()
11 {
12 printf("%d",age(5));
13 getch();
14 }

结果怎会是 18 ~?

到第7行 c=age(n-1)+2; age(n-1)调用自己
当减到n为1的时候不就返回 c了吗~?  
结果怎么不是10
难道通过if了 就不做下一句了?~

[ 本帖最后由 sainimu78 于 2010-1-27 16:22 编辑 ]
搜索更多相关主题的帖子: 代码 递归 
2010-01-27 16:17
sainimu78
Rank: 2
等 级:论坛游民
帖 子:57
专家分:26
注 册:2010-1-27
收藏
得分:0 
啊 理解了 谢谢你呀

c=10+2+2+2+2

c=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
2010-01-27 16:46
快速回复:一段递归的代码 不理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016111 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved