编程题:统计给定的n个数中,负数、零和正数的个数。请大神看看我哪错了
答案:2 悬赏:20 手机版
解决时间 2021-04-12 00:45
- 提问者网友:山高云阔
- 2021-04-11 16:18
为什么运行出来结果永远是0 0 0啊?
#include
int main()
{
double a;
int x,y,z,i,n;
while (scanf("%d",&n)!=0&&n!=0)
{ x=y=z=0;
for(i=0;i {
scanf("%lf",&a);
if(a<0)x++;
else if(a=0)y++;
else if(a>0)z++;
}
printf("%d %d %d",x,y,z);
}
}
最佳答案
- 五星知识达人网友:不如潦草
- 2021-04-11 16:45
#include
#include
int main()
{
double a;
int x,y,z,i,n;
while (scanf("%d",&n)!=0&&n!=0)
{ x=y=z=0;
for(i=0;i
{
scanf("%lf",&a);
if(fabs(a)<10e-6)y++;
else if(a<0.0)x++;
else if(a>0.0)z++;
}
printf("%d %d %d",x,y,z);
}
return 0;
}
注意,1,a<0改为a<0.0,因为0是int型变量,double与其比较大小会出错
2,float和double型的a==0要用绝对值小于某个足够小的数(这里用的是10的-6次方)(因为精度问题,他们可能会变成非零)
3,=是赋值号,要用==。。。。。
全部回答
- 1楼网友:归鹤鸣
- 2021-04-11 17:44
虽然我很聪明,但这么说真的难到我了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯