int x=3,y=2;float a=2.5,b=3.5;
(x+y)%2+(int)a/(int)b
1.计算x+y=3+2=5;
2.(x+y)%2表示除以2的余数。5/2=2余1
3.(int)a/(int)b;强制转换a=2,b=3;a/b=2/3=0
所以结果是1+0=1;
注意:
1.float型转换为int型,只取整数部分不产生四舍五入等效果。如float型3.82转换为int结果就是3
2.两个int型相除,结果也为int型,也是取整数部分。如2/3=0.666...取整数部分结果就是0
结果是1;
(x+y)%2=1这个不用说了,都是整形操作,没有问题
(int)a/(int)b =0为什么呢?(int)a,(int)b已经强行把float型转换成int型,系统将将调用/运算的整形形式,所以得到的结果也会取整,所以为0
前面的是1,后面的是0,所以答案就是1了
如果是C语言的话,为1吧
1