| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1073 人关注过本帖
标题:菜鸟的问题
只看楼主 加入收藏
lovl
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-10
收藏
 问题点数:0 回复次数:3 
菜鸟的问题
#include<iostream.h>
int fun(int n)
{
if(n++==4)
return ++n;
return n*fun(++n);
}
void main()
{
int i=0;
int sum=fun(i);
cout<<sum<<endl;
}
我真搞不明白输出的居然是48哦,
真的不懂啊。
谁肯一步步告诉我这个程序的执行过程,
谢谢
搜索更多相关主题的帖子: include return 
2006-09-13 01:43
天使坠落的眼泪
Rank: 2
等 级:新手上路
威 望:5
帖 子:204
专家分:0
注 册:2006-5-16
收藏
得分:0 
return n*fun(++n)一直使用跌贷方法,一直在调用int fun()函数,知道n=4的时候,所以会输出48

樹欲靜而風不止... http://blog./seablue_xj
2006-11-05 22:00
天若有情
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-10-25
收藏
得分:0 
对,楼上说得对,当n++不等于4的时候,return n*fun(++n)将会一直调用int fun()函数,一直要到n++等于4,然后才会执行到++n
2006-11-06 11:37
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
得分:0 
#include<iostream.h>
int fun(int n)
{
if(n++==4)
return ++n;
return n*fun(n++); //++n改为n++,结果就为720了(6*5*4*3*2=720)
}
void main()
{
int i=0;
int sum=fun(i);
cout<<sum<<endl;
}
这样改一改之后结果大不一样了。

多看、多练、多写
2006-11-08 20:19
快速回复:菜鸟的问题
数据加载中...
 
   



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

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