c语言计算问题:y+=i-=j*=++x 已知y+5.0 i=3 j=5 x=2.5
问题描述:
c语言计算问题:y+=i-=j*=++x 已知y+5.0 i=3 j=5 x=2.5
答
求什么 求Y吗?
如果是我说的
++X = 2.5+1 = 3.5
J*= ++X
则 J = J * X = 5 * 3.5 = 17.5
i-=J
则 i = i - J = 3- 17.5 =-14.5
Y += i
则 Y = Y + i = 5 + (-14.5) = -9.5书上答案是9.0-9.0是不是和题目有关?题目更具体点是“int i=3 ,j=5;float x=2.5;double y=5.0”第一步没有变化x++x=3.5第二步计算有类型转换int型的j 参与运算所以答案会强制转换为int型所以j = 5 *3.5 = (int)17.5所以转换后j=17(强制取整数位)后面依次正常计算i=i-j = 3-17 = -14最后一步又涉及类型转换y=y+i = 5.0 + (double)-14 =-9.0