请教!C语言计算方面的初级问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:16:23
C程序设计第三版 清华大学出版社 谭浩强
第三章课后习题如下

求下面算术表达式的值

X+a%3*(int)(X+Y)%2/4
设:X=2.5,a=7,y=4.7
答案给的是2.5,但是我没算出来,望各位不吝赐教,劳驾写出详细计算步骤,山人先行谢过!

x+y=7.2,但是强制类型转换后是3*7%2=1,1与4相除应该得到的事0.25,但你的这一步的所有数的数据类型都是整型,所以舍去.25,保留零,2.5+0当然是2.5了!

X+a%3*(int)(X+Y)%2/4
这样:
X+a%3*(int)(X+Y)%2/4
2.5 + 7%3 * (int)(2.5+4.7)%2/4
= 2.5 + 1*(int)(7.2)%2/4
= 2.5 + 1* 7 %2 / 4
= 2.5 + 7 % 2 / 4
= 2.5 + 1 / 4
= 2.5 + 0
= 2.5