C语言中实型数据运算的问题!如图:a=1.0⼀3*3b=3⼀2c=1⼀3*3为什么产生这样的结果

2025-02-25 23:07:20
推荐回答(2个)
回答1:

楼主好像忘发图了,但这段代码绝对是编译不了的。
咱们平时学数学用的书写规范,和编程要求的书写规范是有差别的
1、平时乘号*可以省略,但是编程时*不能省。3b必须写成3*b;如果有必要,应写成(3*b)——这跟运算符的优先级有关。
2、”a=1.0/3*3b=3/2c=1/3*3"……额的神哪,这也太有想象力了吧?"=“是赋值号,将右边的值赋给左边,楼主是要让编译器解方程?你高估人家了...由于没图片,也没具体说明,我也不清楚这玩意儿是什么意思,只能讲到这儿了。建议楼主不仅要仔细看书,还要多写程序,写错了琢磨琢磨、试着改改,再错再改,慢慢地你就找着门路了。高手都是这么炼成的

回答2:

可以这么考虑!个人认为如此:
a=(1.0/3)*3;
1.0是浮点数,而3是整形数,所以对3进行隐式转换到浮点型,得出的结果与3的浮点型数相乘,得1.0。
b=3/2;
3和2都是整形,所以相除得1,余1,而得出的整形结果是1,放进浮点型的结果里,所以是1.0。
c=(1/3)*3;
1和3都是整形,所以相除得0,而0*3=0,所以结果是0。