S = 5/9*(H - 32.0)和S =(H - 32.0)*5/9的区别
S = 5/9*(H - 32.0)和S =(H - 32.0)*5/9的运算顺序不一样,结果也不一样。
S = 5/9*(H - 32.0)的运算顺序:
S = S =(H - 32.0)*5/9的运算顺序:
C语言中int做除法会舍去余数,结果是整数商而非小数。从题目来看你希望进行浮点数计算,那么就不要养成5/9这种坏习惯写法(这个表达式单独拿出来,结果是int型,值为0),要写5.0/9(这个表达式结果为double型,值在0.5555左右)。这种差别是由C的隐式转换类型提升导致的。有时这么写不会出问题,那是因为表达式其他部分已经把operand隐式转换为double了,而如果保留这种坏习惯,很可能就会遇到表达式求值出错的bug。