一道简单的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.那么是不可能出
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 02:31:20
xRn@Đ u_@lHvnDyQ,Zl#83sgƫ6
H3s9cTJ|aGc@{Hm*T:o==8Ԫ<-Z#xj(S-oncvuu?@C(0ZuMuCK]zx/:v
Oj66B(|ѿ
v-yc羼D%Wx)Xq/2 t\}0?|H:"uZH{1
W:j=?H|2zb
/xJ߿_^Kt^
OSp>O&sgjE`d}3D&Y.+܁j=}[{r{ܷҤ ,*Ik6u1p'[dڱ1b21mBBTsNJ$
bzJ
一道简单的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.那么是不可能出
一道简单的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.
这到底是为什么呢?应该是很简单的.呵呵!
一道简单的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.那么是不可能出
3 是对的, 因为从头到尾都是 整形运算,不能出现小数点后面的数值,
而且,我还用 gcc 编译了一下,并证实是3,
如果你那出错,有个可能是编译器不符合标准所致.