| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:帮忙解决一个递归调用问题。
只看楼主 加入收藏
杜撰
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:53
专家分:69
注 册:2011-5-14
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:3 
帮忙解决一个递归调用问题。
#include <stdio.h>
#include <conio.h>

void count_dn(int count);

main()
{
   int index;

   index = 8;
   count_dn(index);
}

void count_dn(int count)
{
   count--;
   printf("The value of the count is %d\n",count);
   if (count > 0)
      count_dn(count);
   else
      getch();
   printf("Now the count is %d\n",count);
}

递归程序及结果图.rar (28.17 KB)



这是一个递归输出0-7的算法,倒数第三行getch();如果被去掉,输出的结果将有所不同,结果请看附件,或方便的话,可以验证一下。谢谢高手了!
搜索更多相关主题的帖子: include count 倒数 
2011-09-24 17:08
拾忆
Rank: 2
等 级:论坛游民
帖 子:23
专家分:63
注 册:2011-9-23
收藏
得分:7 
#include <stdio.h>
#include <conio.h>

void count_dn(int count);

void main()
{
   int index;

   index = 8;
   count_dn(index);
}

void count_dn(int count)
{
   count--;
   printf("The value of the count is %d\n",count);
   if (count > 0)
      count_dn(count);
   else
      getch();
   printf("Now the count is %d\n",count);
}
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-09-24 17:20
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:7 
肯定有所不同 你仔细想想 你的else能管几句话? 是不是第一个分号前面

你把getch去了不就去管printf了吗  这样你递归每次返回的时候不就不printf了吗

我觉得应该是这样的
程序代码:
void count_dn(int count)
{
   count--;
   printf("The value of the count is %d\n",count);
   if (count > 0)
      count_dn(count);
   printf("Now the count is %d\n",count);

}

 

                                         
===========深入<----------------->浅出============
2011-09-24 17:21
ningye
Rank: 2
等 级:论坛游民
帖 子:33
专家分:22
注 册:2011-9-22
收藏
得分:7 
回复 3楼 laoyang103
count_dn(count);后面不可以直接加上printf("Now the count is %d\n",count);这个表达式;因为当(count>0)为假时,又重新递归完成函数的调用。也就是说你在count后面加几个printf()那么它将输出几重数值。
例如:count_dn(count);
printf("Now the count is %d\n",count);
printf("Now the count is %d\n",count);
printf("Now the count is %d\n",count);
你可以自己输出结果。
按你所说的要求就直接把getch()去掉就完成递归调用了。或者你把getch()放在你程序的最末尾,你将会发现index等于几你就要按键几下程序才真正结束。
2011-09-25 10:33
快速回复:帮忙解决一个递归调用问题。
数据加载中...
 
   



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

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