永发信息网

以下程序中,第六行 c=5.0/9.0*(f-32.0);改为 c=5/9*(f-32);为什么就不行了,原因是什么?

答案:4  悬赏:60  手机版
解决时间 2021-01-20 04:37
  • 提问者网友:欲劫无渡
  • 2021-01-19 19:09
以下程序中,第六行 c=5.0/9.0*(f-32.0);改为 c=5/9*(f-32);为什么就不行了,原因是什么?
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-01-19 20:26
是数据问题,因为9. 0是浮点数,而9是整数!结果是不一样的,应该是一个是5/9. 0是小数,而5/9是整数。
全部回答
  • 1楼网友:零点过十分
  • 2021-01-19 22:11
是浮点型的,你这么写就变成了int型,会舍去小数点部分,double型的也是。
  • 2楼网友:独钓一江月
  • 2021-01-19 21:25
因为你定义c时是把它定义成float类型的
  • 3楼网友:怙棘
  • 2021-01-19 20:48
楼主,如果你改为:c=5/9*(f-32);其中5/9只会保留整数位,得出的结果为5/9=0,所以计算得出结果应该为0;
而c=5.0/9.0*(f-32.0);,计算5.0/9.0的时候0.555555系统计算结果浮点数计算.所以结果正确。老师上课应该会说的~
还有你输出摄氏温度的是否写漏了?
printf("输出摄氏温度:%f\n",c);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯