一道简单的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/04/29 07:51:01
一道简单的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.那么是不可能出
一道简单的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,
如果你那出错,有个可能是编译器不符合标准所致.