若变量定义为 int fahr; ,则表达式 5 * (fahr - 32) / 9 和表达式 5 / 9 * (fahr - 32) 是等价的。这个是错的,求解析
由于除法和乘法没有优先级之分,因此计算机遵循从左到右的顺序对乘法和除法进行计算。因此,对于表达式 5 * (fahr - 32) / 9,计算机首先计算括号中的减法运算,然后计算乘除法运算,按照从左到右的顺序进行计算,优先计算5 * (fahr - 32),然后再将结果除以9。这样,就能正确计算出华氏温度转换为摄氏温度的结果。
而对于表达式 5 / 9 * (fahr - 32),同样先计算括号中的减法运算,然后按照从左到右的顺序计算乘除法运算,先计算5 / 9得到的结果为0,再乘以(fahr - 32),这样计算会将fahr-32转化为整形数,因此结果也不正确。
因此,可以看到,这两个表达式的计算顺序是不同的,其结果也是不同的。正确的表达式应该是 5 * (fahr - 32) / 9。