运算符计算问题
为什么程序结果等于5.5。我的计算哪里有问题?感谢x+z = 7.2
(int)7.2/2 = 3
y/3*3 = 2 * 3 = 6
x+6%4 = 2.5+2 = 4.5
#include <stdio.h>
int main()
{
int y = 7;
float x = 2.5,z = 4.7;
x = x+(int)(y/3*(int)(x+z)/2)%4;
printf("%f",x);
}
第7行是先算括号,然后由左向右运算,而不是理想中的先算出(int)(x+z)/2的值,之后再运算乘法,改成 x = x+(int)(y/3*((int)(x+z)/2))%4;就是lz理想中要的结果了。 觉得计算不对,那就加括号解决
页:
[1]