#include <stdio.h> main( ) { int a = 7;float x = 2.5, y = 4.7; printf("%g", x+a%3*(int)(x+y)%2/4);

#include <stdio.h>
main( )
{ int a = 7;float x = 2.5, y = 4.7;
printf("%g", x+a%3*(int)(x+y)%2/4);
 
运行结果:
最新回答
键盘书生

2024-10-14 08:49:34

2.5
先要比较优先级 乘除的优先级大于取余运算的优先级
后面2 /4 = 0 所以后面的式子为零
追问
(int)(x+y)这个表达式的结果是多少啊??
追答
7啊,因为后面为零,所以整个式子为零
追问
不是7.2?
追答
不是啊,因为前面有一个int的强制类型转换,多余的0.2计算机乎略了,就剩下整数部分7
寄信给风

2024-10-14 09:23:01

2.5
追问
a%3*(int)(x+y)%2/4=0?能把式子详细的解说一下吗??
追答
(int)(x+y)%2/4=0