永发信息网

一个C语言编程问题

答案:3  悬赏:50  手机版
解决时间 2021-08-22 11:09
  • 提问者网友:爱唱彩虹
  • 2021-08-21 11:40

main()
{
    float celsius,fahr;
    float lower,upper,step;
    lower=-17;
    upper=148;
    step=11;
    celsius=lower;
    while(celsius<=148)
    {
        fahr=(celsius*9/5+32);
        printf("%f\t%f\n",celsius,fahr);
        celsius=celsius+step;
    }
    getch();
}

为什么我把fahr=(celsius*9/5+32);改成fahr=(celsius*(9/5)+32);后执行的结果就不一样了呢?求解。

最佳答案
  • 五星知识达人网友:鸠书
  • 2021-08-21 12:06

fahr=(celsius*9/5+32);和fahr=(celsius*(9/5)+32);是有区别的


区别在celsius*9/5和celsius*(9/5)这,比如,我举个例子,如果celsius是2,那么celsius*9/5就是2*9/5,就是18/5=3.0, 而celsius*(9/5)是2*(9/5)=2*1.0=2


结果不一样,这样很明确吧!

全部回答
  • 1楼网友:一秋
  • 2021-08-21 15:05

是的.要是你想加括号也可以这样(9.0/5)

  • 2楼网友:深街酒徒
  • 2021-08-21 13:28

肯定不同啊

fahr=(celsius*9/5+32);   会先算 celsius*9  -> /5  -> +32

fahr=(celsius*(9/5)+32);会先算9/5=1 再算celsius*1  -> +32

你这样该下,就可以了

fahr=(celsius*(9.0/5)+32);

fahr=(celsius*((float)9/5)+32);

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯