老牛来学习 发表于 2020-7-7 00:16:51

运算符计算问题

为什么程序结果等于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);
}

nanqi2333 发表于 2020-7-7 01:25:05

第7行是先算括号,然后由左向右运算,而不是理想中的先算出(int)(x+z)/2的值,之后再运算乘法,改成 x = x+(int)(y/3*((int)(x+z)/2))%4;就是lz理想中要的结果了。

热气球 发表于 2020-7-7 09:34:18

觉得计算不对,那就加括号解决
页: [1]
查看完整版本: 运算符计算问题