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

 我来答
慕容曼华聊雁
2020-02-03 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:908万
展开全部
因为a,b,c都为整形,当执行a/b的时候,值为1,1+0.4按说是1.4,但是c为整形,所以为1,如果c为浮点型,则为1.4,如果a,b中有一个或者两个为浮点型,则a/b为1.6
敖秀云检鹃
2020-02-06 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.2万
采纳率:35%
帮助的人:1076万
展开全部
你这个问题其实就是一个类型转换的问题的。
首先是你的A,B,C都是定义成了INT型。
然后在做A/B的时候得出来的结果值就是1了。然后和0.4相加的结果本来应该是1.4,但是呢,由于你把C给定义成了INT型,所以呢,只有进行四舍五入了。把0.4给舍弃掉了。所以得出来的结果就是1了。
实际上就是进行了一个隐式的类型转换的。
这种情况在实际当中一定要多注意的。稍不注意就会出错的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万来福俞甲
2020-04-17 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:925万
展开全部
/只能用于整型数,如果除后不是整型数就自动取整,a/b就等于1,
1+0.4=1.4;而c定义是一个整型数,所以c自动取整,所以是1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3c1f70dedfd
2020-02-01 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:977万
展开全部
因为你定义的是整数型的数据,要定义float的就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式