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);后执行的结果就不一样了呢?求解。
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
结果不一样,这样很明确吧!
肯定不同啊
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);
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息