#include <stdio.h> main( ) { int a = 7;float x = 2.5, y = 4.7; printf("%g", x+a%3*(int)(x+y)%2/4); 运行结果:
2.5 先要比较优先级 乘除的优先级大于取余运算的优先级后面2 /4 = 0 所以后面的式子为零 追问 (int)(x+y)这个表达式的结果是多少啊?? 追答 7啊,因为后面为零,所以整个式子为零 追问 不是7.2? 追答 不是啊,因为前面有一个int的强制类型转换,多余的0.2计算机乎略了,就剩下整数部分7