public class T0609 {
public static void main(String args[]) {
int a=7;
float x=2.5f;
float y=4.7f;
System.out.println(x+a%3*(int)(x+y)%2/4);
}
}
===========测试结果=============
2.5
说明:
这个关键是优先级问题
1)括号永远优先级最高
2)无括号的默认优先级
* / 运算优先级最高
% 运算优先级次高
+ -运算优先级最低
所以 是 2.5 + {7%[3*(x+y)]%(2/4)} 这个式子的结果
* / 运算优先级最高
% 运算优先级次高
+ -运算优先级最低
%是求余符号
所以 是 2.5 + {7%[3*(x+y)]%(2/4)}
正确答案:2.5
#include
void main ()
{ int a=7;
float x=2.5,y=4.7;
printf("%d",int(x+a%3*(int)(x+y)%2/4));
}结果为2
自己上机去试去,然后想想为啥结果会这样,这样的题还需要发到百度知道上来吗?