若定义:int a=8,b=5,c;执行语句c=a⼀b+0.4;运行后为什么c的值是1?请教哪位给出详细解答

2024-11-15 05:39:55
推荐回答(4个)
回答1:

因为a,b,c都为整形,当执行a/b的时候,值为1,1+0.4按说是1.4,但是c为整形,所以为1,如果c为浮点型,则为1.4,如果a,b中有一个或者两个为浮点型,则a/b为1.6

回答2:

你这个问题其实就是一个类型转换的问题的。
首先是你的A,B,C都是定义成了INT型。
然后在做A/B的时候得出来的结果值就是1了。然后和0.4相加的结果本来应该是1.4,但是呢,由于你把C给定义成了INT型,所以呢,只有进行四舍五入了。把0.4给舍弃掉了。所以得出来的结果就是1了。
实际上就是进行了一个隐式的类型转换的。
这种情况在实际当中一定要多注意的。稍不注意就会出错的。。

回答3:

/只能用于整型数,如果除后不是整型数就自动取整,a/b就等于1,
1+0.4=1.4;而c定义是一个整型数,所以c自动取整,所以是1.

回答4:

因为你定义的是整数型的数据,要定义float的就可以了