注册 登录
编程论坛 C语言论坛

不能判断输入值的负数零正数的个数 ,,求助!

好烦、 发布于 2020-11-03 19:01, 1888 次点击
//判断输入值的负数零正数的个数
#include<stdio.h>
int main (void)
{
    int n,i,a=0,b=0,c=0;
    float num;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&num);
        if(num==0)
            b++;
        if(num>0)
            c++;
        if(num<0)
            a++;
    }
    printf("%d %d %d",a,b,c);
    return 0;
}
不知为何不能判断
5 回复
#2
xianfajushi2020-11-03 19:10
int num;试看
scanf("%f",&num);试看

[此贴子已经被作者于2020-11-3 19:32编辑过]

#3
好烦、2020-11-03 20:01
???你这什么原理???
#4
风过无痕19892020-11-03 20:47
回复 楼主 好烦、
浮点数只能这样来比较大小:设一个精度值,如:0.000001,(num - 0.000001) <= num && num <= (num + 0.000001)
程序代码:

#include<stdio.h>
int main (void)
{
    int n,i,a=0,b=0,c=0;
    int num;                 // 浮点数因精度问题不能直接比较大小
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&num);
        if(num==0)
            b++;
        if(num>0)
            c++;
        if(num<0)
            a++;
    }
    printf("%d %d %d",a,b,c);
    return 0;
}
#5
好烦、2020-11-03 22:08
回复 4楼 风过无痕1989
ooooooooo!
#6
熬夜2020-11-06 21:41
1