一道简单的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/07/13 15:02:57
![一道简单的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.那么是不可能出](/uploads/image/z/6749493-69-3.jpg?t=%E4%B8%80%E9%81%93%E7%AE%80%E5%8D%95%E7%9A%84C%E8%AF%AD%E8%A8%80%E8%AE%A1%E7%AE%97%E8%AE%BEint+x%3D3.4%2Cy%3D1.8%2Ca%3D8%2C%E8%AE%A1%E7%AE%97%E8%A1%A8%E8%BE%BE%E5%BC%8Fx%2Ba%253%2A%28int%29%28x%2By%29%252%2F5+%E7%9A%84%E5%80%BC.400+000.%E4%BD%86%E6%98%AF%E6%88%91%E7%9A%84%E7%90%86%E8%A7%A3%E6%98%AF%E5%9C%A8int+x%2Cy%2Ca%E5%90%8E%2C%E5%88%99x%3D3%2Cy%3D1%2Ca%3D8.%E4%B8%94%EF%BC%88int%EF%BC%89%E7%B1%BB%E5%9E%8B%E8%A1%A8%E7%A4%BA%E7%AC%A6%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%E6%9C%80%E9%AB%98%2C%E6%89%80%E4%BB%A5%E5%85%88%E8%AE%A1%E7%AE%97%28int%29%28x%2By%29%3D4.%E9%82%A3%E4%B9%88%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%83%BD%E5%87%BA)
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,
如果你那出错,有个可能是编译器不符合标准所致.