搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求错误处解决
标题:
求错误处解决
只看楼主
muist
等 级:
新手上路
帖 子:2
专家分:0
注 册:2013-4-9
楼主
问题点数:0 回复次数:4
求错误处解决
void main()
{ int x=0,y,z;
while(x<=19)
{y=0;
while(y<=33)
{z=100-x-y;
if (5.0*x+3*y+z/3.0==100.0)
printf("%d %d %d\n",x,y,z,);
x++;
}
z++;
}
}
搜索更多相关主题的帖子:
void
2013-04-16 17:51
fanpengpeng
来 自:南极洲
等 级:
蝙蝠侠
威 望:
7
帖 子:299
专家分:849
注 册:2013-2-1
第
2
楼
得分:0
if (5.0*x+3*y+z/3.0==100.0)
浮点数不要用==比较 可以double f = 5.0*x+3*y+z/3.0; f > 100.0 - eps && f < 100.0 + eps
不过 你既然是100整数 为什么要用浮点比较呢 (int)(5.0*x+3*y+z/3.0) == 100 不好吗?
当然如果你在意截断误差的话 也可以用 round函数啊
人生是一场错过 愿你别蹉跎
2013-04-16 18:02
liu_鹏
等 级:
论坛游民
帖 子:33
专家分:75
注 册:2013-4-16
第
3
楼
得分:0
你这个程序里面Y一直是0,X的最大值是19,所以Z的最小值是81,5.0*x+3*y+z/3.0永远〉100,所以不会执行输出语句。而Y一直是0,就出现了死循环。
不懂就发帖。懂了就恢复。
2013-04-16 18:33
abc594986308
等 级:
论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
第
4
楼
得分:0
百鸡百钱问题么?那么5.0*x+3*y+z/3.0==100.0这个表达式就不能这样写。要写成左右两边乘上3才会得出正确结果。
2013-04-16 18:53
muist
等 级:
新手上路
帖 子:2
专家分:0
注 册:2013-4-9
第
5
楼
得分:0
回复 4楼 abc594986308
谢谢
2013-04-16 20:25
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-404435-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.046423 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved