| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:怎么会输出错误啊
只看楼主 加入收藏
Imtheone
Rank: 2
等 级:论坛游民
帖 子:78
专家分:34
注 册:2010-4-23
结帖率:5.26%
收藏
已结贴  问题点数:20 回复次数:8 
怎么会输出错误啊
#include"stdio.h"
main()
{
    int a,b,c,n,i;
    double m;
    while(scanf("%d",&n)==1&&n)
    {
        if(n==0) break;
        int a=0,b=0,c=0;      
        for(i=0;i<n;i++)
        {
           scanf("%d",&m);
           if(m==0) a++;
           else if(m>0) b++;
           else  c++;
        }
       printf("%d %d %d\n",a,b,c);
    }
    return 0;
}
搜索更多相关主题的帖子: 输出 
2010-05-25 20:42
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:2 
你的主要错误大致如下:
1,scanf("%d",&m);你的这句应该改为: scanf("%d",&m);,因为你的m定义的是double类型,对应的格式应该为%lf,而%d对应的是整型。
2,int a=0,b=0,c=0;   这句改为a=0;b=0;c=0;你在最开始已经定义过了,你现在只是对它们赋值罢了,不用重新定义,在各表达式之间应该为分号。

我的博客  http://blog..cn/daocaoren020
2010-05-25 21:00
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:2 
除了上面的错误意外我觉得你的while的判断条件有问题,你说说你这题的,目的是什么啊!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-25 21:45
LUNNAN
Rank: 2
等 级:论坛游民
帖 子:30
专家分:44
注 册:2010-5-23
收藏
得分:2 
只要把double改为int ,或double改为float ,scanf("%d",&m)->scanf("%f",&m), 在或者 把scanf("%d",&m)->改为scanf("%lf",&m)
2010-05-25 22:48
game6666
Rank: 2
等 级:论坛游民
帖 子:25
专家分:24
注 册:2010-4-23
收藏
得分:2 
把int a=0,b=0,c=0; 这句去掉

坚持.........
2010-05-25 23:27
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:2 
回复 楼主 Imtheone
有一些小问题。我在你的代码上稍微改动了一下,你看看是否满意。
程序代码:
#include"stdio.h"
main()
{
    int a,b,c,n,i;
    double m;
    printf("请输入要输入的数的个数:");
    while(scanf("%d",&n)==1&&n)
    {
        if(n==0) break;
        printf("请输入%d个数:",n);
        a=0,b=0,c=0;  //a,b,c已经在上面定义过了。把int去掉。  
        for(i=0;i<n;i++)
        {
           scanf("%lf",&m);//这个语句有修改
           if(m<1e-6&&m>-1e-6) a++;    //浮点数在内存中是不精确存储的,所以不能拿浮点数和某个数直接比较相等或不等,这是没有意义的!所以以下的比较语句需要修改
           else if(m>1e-6) b++;
           else  c++;
        }
        printf("输入的数中等于0的有%d个,大于0的有%d个,小于0的有%d个。\n",a,b,c);
        printf("请输入要输入的数的个数:");
    }
    return 0;
}

 

南国利剑
2010-05-26 01:16
Imtheone
Rank: 2
等 级:论坛游民
帖 子:78
专家分:34
注 册:2010-4-23
收藏
得分:0 
我知道了  谢谢各位了
2010-06-01 22:05
欧阳鹏
Rank: 2
等 级:论坛游民
帖 子:14
专家分:27
注 册:2010-5-29
收藏
得分:2 
scanf("%d",&n)==1&&n这句有什么用呀!!!我有点没看懂,求教各位!!
2010-06-01 22:10
gyx8899
Rank: 2
等 级:论坛游民
帖 子:56
专家分:91
注 册:2010-2-2
收藏
得分:2 
scanf("%d",&n)==1在判断语句中不起作用,因为scanf("%d",&n)永远为真,也即为1.只是起到了输入n的作用。
自己的一点理解。有错请各位大虾指教。
2010-06-01 22:32
快速回复:怎么会输出错误啊
数据加载中...
 
   



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

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