| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 703 人关注过本帖
标题:有没有高手帮我看下这程序
只看楼主 加入收藏
zfzdhz
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2008-8-21
收藏
 问题点数:0 回复次数:4 
有没有高手帮我看下这程序
fun(int i,int *p)
{
  int s1,s2;
 if(i==1||i==2)
 *p=1;
else
{  
  fun(i-1,&s1);
fun(i-2,&s2);
*p=2*s1+s2+1;
printf("%d,%d\n",s1,s2);
 }
}
main()
{int a;
fun(4,&a);
printf("%d\n",a);
}

这是递归调用吧???
答案是1,1
      4,1
      10
帮我分析下
2008-10-11 19:31
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
这是递归,注意值得变化          fun(1,&s2)     => s1=1;
                                fun(2,&s1)     =>  s2=1;
              fun(3,&s1)    =>  *p=2*s1+s2+1   =>  s1=4    输出(1,1)
fun(4,&a)  => fun(2,&s2)    =>   s2=1
              *p=2*s1+s2+1   =>   *p=2*4+1+1=10   输出  (4,1)

[[it] 本帖最后由 守鹤 于 2008-10-11 20:20 编辑 [/it]]

多少个日日夜夜想起你,只希望有缘再次相见
2008-10-11 20:19
zfzdhz
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2008-8-21
收藏
得分:0 
[bo][un]守鹤[/un] 在 2008-10-11 20:19 的发言:[/bo]

这是递归,注意值得变化          fun(1,&s2)     => s1=1;
                                fun(2,&s1)     =>  s2=1;
              fun(3,&s1)    =>  *p=2*s1+s2+1   =>  s1=4    输出(1,1)
fun(4,&a)   ...

加红的应该是*p=4  而不是s1=4 吧
2008-10-12 18:13
mythhaha
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-3-17
收藏
得分:0 
*p就是s1,它是传入的参数
2008-10-12 19:56
zfzdhz
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2008-8-21
收藏
得分:0 
[bo][un]mythhaha[/un] 在 2008-10-12 19:56 的发言:[/bo]

*p就是s1,它是传入的参数

能解释清楚些吗  妹看懂   传入的参数??
2008-10-13 21:48
快速回复:有没有高手帮我看下这程序
数据加载中...
 
   



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

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