|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 问题2:`下列程序的运行结果怎么是15?请讲解过程!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
721
人关注过本帖
标题:
问题2:`下列程序的运行结果怎么是15?请讲解过程!
只看楼主
加入收藏
iqyuankong
等 级:
论坛游民
帖 子:68
专家分:10
注 册:2009-10-23
结帖率:
92.86%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
问题2:`下列程序的运行结果怎么是15?请讲解过程!
问题2:`下列程序的运行结果怎么是15?请讲解过程!
int f(int a[], int n)
{
if(n>=1) return f(a,n-1)+a[n-1];
else
return 0;
}
main()
{
int aa[5]={1,2,3,4,5}, s;
s=f(aa, 5);
printf("%d\n",s);
}
搜索更多相关主题的帖子:
运行
结果
讲解
2010-01-23 19:39
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
2
楼
收藏
得分:0
if(n>=1) return f(a,n-1)+a[n-1];
else
return 0;
return 10+a[5-1];
return 6+a[4-1];
return 3+a[3-1];
return 1+a[2-1];
return 0+a[1-1];
return 0;
递归调用
2010-01-23 20:16
举报帖子
使用道具
赠送鲜花
burningbebe
等 级:
论坛游民
帖 子:41
专家分:19
注 册:2009-10-31
第
3
楼
收藏
得分:0
哥么你绝得应该是多少
是不是10啊
我想你是不是犯了个小店错误 a【】是从a【0】开始的
这是我猜的 如果是以后就小心了 我也是初学者 大家一起努力
世界上最遥远的距离不是生与死,而是网通和电信!
2010-01-23 21:07
举报帖子
使用道具
赠送鲜花
ljt0000mf
等 级:
论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
第
4
楼
收藏
得分:0
唉,我也看错了,
正确的应该是a[4]=5,a[3]=4,...a[0]=1;
唉,唉
2010-01-24 03:00
举报帖子
使用道具
赠送鲜花
cnfarer
等 级:
版主
威 望:
179
帖 子:3330
专家分:21157
注 册:2010-1-19
第
5
楼
收藏
得分:20
递归调用,就嵌套调用函数自身!
执行过程:
f(a,5)=f(a,4)+a[4]; //开始调用
f(a,4)=f(a,3)++a[3];
f(a,3)=f(a,2)++a[2];
f(a,2)=f(a,1)++a[1];
f(a,1)=f(a,0)++a[0];
f(a,0)=0; //开始返回
f(a,1)=0+1;
f(a,2)=1+2;
f(a,3)=3+3;
f(a,4)=6+4;
f(a,5)=10+5;
[
本帖最后由 cnfarer 于 2010-1-24 16:25 编辑
]
★★★★★
为人民服务
★★★★★
2010-01-24 16:23
举报帖子
使用道具
赠送鲜花
Devon_Ye
来 自:广东
等 级:
业余侠客
帖 子:124
专家分:282
注 册:2010-1-7
第
6
楼
收藏
得分:0
int f(int a[], int n)
{
if(n>=1) return f(a,n-1)+a[n-1];
else
return 0;
}
main()
{
int aa[5]={1,2,3,4,5}, s;
s=f(aa, 5);
printf("%d\n",s);
}
程序从main函数开始执行;
1)s=f(aa,5);
调用函数f,s=f(aa,4)+a[4];
2) s=f(aa,3)+a[4]+a[3]
.
.
.
5)s=a[0]+a[1]+a[2]+a[3]+a[4]=15
2010-01-25 15:24
举报帖子
使用道具
赠送鲜花
huangpubo
等 级:
新手上路
帖 子:4
专家分:0
注 册:2010-1-24
第
7
楼
收藏
得分:0
直接看到main语句中,aa[5],表示为一个数组,有五个元素,遇到了s=f(aa,5),表示开始做f函数,跳到f函数中,由题知道n=5,满足if语句,则return f(a,4)+5,再做f(a,4)函数,n也满足if语句则再次return f(a,3)+4,由此最后的结果为return 5+4+3+2+1=15
2010-01-25 17:08
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
问题2:`下列程序的运行结果怎么是15?请讲解过程!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.037637 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved