Linux下的C语言程序问题无限循环

这个程序我在Linux里用gcc编译,然后无限循环,我用ctrl+c但是只能停止循环,却不能退出运行,这是一个问题,还有一个就是为什么它会无限循环?我把for里面中间一个x!=9.9改成x<=9.9还是无限循环,为什么?图片

3个回答

改成<=9.9就不会出现这个情况的,

Steve_S96
wizzie 改了,我说了,还是一样无限循环
3 年多之前 回复

亲测,改为<=9.9不是无限循环,用!=是无限循环的原因很简单,float,double的!=不能这么判断,比如你判断 a是不是等于10.0,不能if(a!=10.0),而要用if(a>10.0-0.000001 && a < 10.0 + 0.000001)
看看书就知道为什么了。

电脑中一般无法精确存储浮点数,只能近似存储一个非常非常接近该数的数字,这和存储方式有关(楼主可以百度自己看)
所以一般判断浮点数会设置一个误差(比如10的负6次),如果误差小于该值我们就认为他们是相等的
LINUX GCC编译亲测结果是对的
图片说明
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!