| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 465 人关注过本帖
标题:求助,为什么下面的程序输出的是 1 3 6?请大家指教!
只看楼主 加入收藏
程翔飞
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求助,为什么下面的程序输出的是 1 3 6?请大家指教!
void foin(int a)
{if(a/2){foin(a/2);}printf("%4d",a);
}
void main()
{int a=6;
foin(a);
}
2011-07-05 12:29
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:5 
递归调用 foin(6)->foin(3)->foin(1)推出foin(1)的值再往上依次求其他的值
foin(1)->foin(3)->foin(6)



2011-07-05 12:54
程翔飞
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-25
收藏
得分:0 
谢谢!不过我还是有点儿不清楚。这个递归调用他是怎么从 foin(6)->foin(3)->foin(1)推出foin(1)的值,怎么再往上依次求其他的值foin(1)->foin(3)->foin(6)

2011-07-05 23:07
z520911
Rank: 2
等 级:论坛游民
帖 子:16
专家分:24
注 册:2011-7-2
收藏
得分:5 
它是一直进入foin,知道条件不满足,就开始输出,然后在找到前一个数的值继续输出,所以是foin(1)->foin(3)->foin(6)


2011-07-05 23:58
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:5 
因为你if了。
程序代码:
void foin(int a)//还有你问别人问题,虽说代码行数不多,但是也请你把代码整理一下,再发出来。不要搞那种让人难以理解的书写格式。毕竟这也是让更多人想帮你的前提。
{
if(a/2)
{
  foin(a/2);
}
printf("%4d",a);
}
void main()
{int a=6;

 foin(a);
} 

2011-07-06 08:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
递归当然是最后调用的最先返回  然后先执行了最后一次的printf 就是输出了最后一层的结果

                                         
===========深入<----------------->浅出============
2011-07-06 09:09
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:0 
函数的递归就像是一个人干活偷懒一样。比如公司老板让员工A去算整数1加到整数100的和,勤快的员工就会去做1+2+3+4+……+100,但是这样不是会很累么?于是爱偷懒的员工A想出了一个好办法,他想到,如果我知道1加到99的合是多少那就轻松了。于是员工A对下属B说:“去计算1加到99的和!”于是下属B就去算了,但是很不幸下属B也很懒,于是下属B就找到下属的下属C,对C说:“去,给我把1到98的整数和计算出来”,依次类推,直到最后一个下属(最后一个下属不需要计算,只需要告诉他的上级1这个数字就可以了)。于是乎计算结果一层一层的从下级传到上级,最后A接到了1-99的整数和,顺利的完成了任务,拿到了工资!总体来说,递归分为递推和回归。
https://bbs.bccn.net/viewthread.php?tid=343123&page=1#pid1972307
2011-07-06 09:30
程翔飞
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-25
收藏
得分:0 
回复 5楼 yangfanconan
谢谢提醒!
2011-07-06 12:11
快速回复:求助,为什么下面的程序输出的是 1 3 6?请大家指教!
数据加载中...
 
   



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

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