Steve_S96
wizzie
2016-03-30 10:57
采纳率: 11.1%
浏览 1.8k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • xshuang2
    下雨天不打伞123 2016-03-30 11:14

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

    点赞 评论
  • majianfei1023
    majianfei1023 2016-03-30 11:17

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

    点赞 评论
  • qq423399099
    小灸舞 2016-03-30 12:24

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

    点赞 评论

相关推荐