这个程序我在Linux里用gcc编译,然后无限循环,我用ctrl+c但是只能停止循环,却不能退出运行,这是一个问题,还有一个就是为什么它会无限循环?我把for里面中间一个x!=9.9改成x<=9.9还是无限循环,为什么?
改成<=9.9就不会出现这个情况的,
亲测,改为<=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编译亲测结果是对的