|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求解释,本人对于此题相当混乱!(初学者)
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
369
人关注过本帖
标题:
求解释,本人对于此题相当混乱!(初学者)
只看楼主
加入收藏
戈壁滩
等 级:
新手上路
帖 子:7
专家分:0
注 册:2012-3-6
结帖率:
33.33%
楼主
收藏
已结贴
√
问题点数:5 回复次数:4
求解释,本人对于此题相当混乱!(初学者)
下列程序的输出结果是()。
int fun(int *x,int n)
{if(n==0)
return x[0];
else return x[0]+fun(x+1,n-1);
}
main()
{int a[]={1,2,3,4,5,6,7};
printf("%d\n“,fun(a,3));}
结果为 10;求具体算法。
搜索更多相关主题的帖子:
return
算法
2012-03-06 11:25
举报帖子
使用道具
赠送鲜花
share32
等 级:
黑侠
帖 子:214
专家分:663
注 册:2011-12-1
第
2
楼
收藏
得分:3
又是一个递归函数.
假设a的值不变的方式模拟整个递归过程
fun(a,3)
运行状态是
a[0]+fun(a+1,3-1)
fun(a+1,3-1)
运行状态是 a[1]+fun(a+2,2-1)
fun(a+2,2-1)
运行状态是 a[2]+fun(a+3,1-1)
fun(a+3,1-1)
运行状态是 a[3]
递归以后结果是:a[0]+a[1]+a[2]+a[3]=10
2012-03-06 12:05
举报帖子
使用道具
赠送鲜花
戈壁滩
等 级:
新手上路
帖 子:7
专家分:0
注 册:2012-3-6
第
3
楼
收藏
得分:0
回复 2楼 share32
意思是每次a[0]+fun(a+1,n-1)返回a[0],但是因为指针后移,所以实际返回了a0,a1,a2,a3
然后把这4个数加起来 大概是这个意思吗?
[
本帖最后由 戈壁滩 于 2012-3-6 13:04 编辑
]
2012-03-06 12:58
举报帖子
使用道具
赠送鲜花
于祥
等 级:
蒙面侠
威 望:
5
帖 子:1047
专家分:4132
注 册:2011-4-24
第
4
楼
收藏
得分:3
回复 3楼 戈壁滩
也对,就是每次执行return里边的表达式a[0]+fun(x+1,n-1),直到return得到一个确定的值
最基础的往往是你最容易忽略的!
2012-03-06 13:41
举报帖子
使用道具
赠送鲜花
share32
等 级:
黑侠
帖 子:214
专家分:663
注 册:2011-12-1
第
5
楼
收藏
得分:0
回复 3楼 戈壁滩
对,x+1 ,就是指针后移一位.
2012-03-06 16:59
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
求解释,本人对于此题相当混乱!(初学者)
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024339 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved