我是一个初学者,开始学习C只有2天,见笑~
下面这个式子: x+a%3*(int)(x+y)%2/4 x=2.5 y=4.7 a=7
我是这样算的,先算(int)(x+y)=7 得 2.5+7%3*7%2/4,然后我就这样算了
7%3=1 1*7=7 7%2=1 1/4=0.25 最后2.5+0.25=2.75
但是答案是2.5 运行结果也是2.500000 ,请问各位哥哥姐姐,我错在哪儿了,谢谢
x+a%3*(int)(x+y)%2/4 答案是2.5 是没错的 这个题关键在于你怎么理解(int)(x+y)%2/4 你认为是强制转换x+y结果的类型么? 其实不是 而是强制转换 (x+y)%2/4 这个表达式结果的类型 结果是0 那么2.5+0 答案肯定是2.5了
你可以试试下面这个程序 你认为答案是多少?
main() { printf("%d",(int)7%2/4 ); }
答案是0 ~
答案是0,谢谢大家了,我搞懂了
初学c见笑了,希望以后大家帮助我!
x+y=??
(int)(x+y)%2/4 请把计算的整个过程给我写写!