| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:新手~~关于用递归计数,为什么输出不对
只看楼主 加入收藏
alvingeng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
新手~~关于用递归计数,为什么输出不对
#include<stdio.h>
#include<stdlib.h>
void count(int);
int i=0;
int b;
int main(int argc,char* argv[])
{
    sscanf(argv[1],"%d",&b);
    count(i);
    printf("%d\n",b);
    return EXIT_SUCCESS;
}
void count(int i)
{
    if(b>0)
    {
        if(i<b)
        printf("%d,",i);
        i++;
        count(i)
    }else{
                if(i>b)
                printf("%d,",i);
                i--;
              count(i);
            }
}  
我输入5,输出0,1,2,3,4,5是对的
应该输入-5,输出为0,-1,-2,-3,-4,-5  可只输出了-5  ?????
搜索更多相关主题的帖子: void 计数 include return count 
2012-03-07 11:28
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
不知道你是什么编译器, 怎么会有那个结果,
   if(i<b)
     printf("%d,",i);
        因为if  就管住这一句 ,下面两句会无限做下去 所以输入的b值是永远无法显示的。只会输出 0 --> b前面那个数      
 i++;
 count(i)


梅尚程荀
马谭杨奚







                                                       
2012-03-07 11:48
alvingeng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-7
收藏
得分:0 
回复 2楼 有容就大
忘打了不好意思 ,应该是if(i<b){
                                                        printf()
                                                        i++;
                                                        count(i);
                                                    }
    可还是输入正数时可以得到正确结果,输入负数时就只得到那一个
2012-03-07 11:52
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:20 
sscanf(argv[1],"%d",&b);
这个函数的第一个参数如果不给地址即&argv[1],系统马上报错,我用VC6.0。不知道你为什么这么写,还去牵扯主函数的参数?改成scanf("%d", &b)  完全正确,能得到希望的结果。

梅尚程荀
马谭杨奚







                                                       
2012-03-07 12:03
快速回复:新手~~关于用递归计数,为什么输出不对
数据加载中...
 
   



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

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