一道简单的C语言计算设int x=3.4,y=1.8,a=8,计算表达式x+a%3*(int)(x+y)%2/5 的值.

问题描述:

一道简单的C语言计算
设int x=3.4,y=1.8,a=8,计算表达式x+a%3*(int)(x+y)%2/5 的值.
400 000.
但是我的理解是在int x,y,a后,则x=3,y=1,a=8.且(int)类型表示符的优先级最高,所以先计算(int)(x+y)=4.
那么是不可能出现一个0.4的小数部分的,应该是3.000 000.
这到底是为什么呢?应该是很简单的.呵呵!
1个回答 分类:综合 2014-11-01

问题解答:

我来补答
3 是对的, 因为从头到尾都是 整形运算,不能出现小数点后面的数值,
而且,我还用 gcc 编译了一下,并证实是3,
如果你那出错,有个可能是编译器不符合标准所致.
 
 
展开全文阅读
剩余:2000
上一页:圆向量