作业帮 > 综合 > 作业

c语言计算问题:y+=i-=j*=++x 已知y+5.0 i=3 j=5 x=2.5

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 02:24:31
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