在c语言中3/2为什么等于0

 我来答
忻伦壬娴
2020-05-09 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:786万
展开全部
因为3默认的是int型的常量,所以3/2的输出结果为了与被除数一致就输出0(0.5进行int类型转换后就变成了0)
这里需要注意的就是C语言除法中,结果的数据类型是会转换成被除数的数据类型的。
比如:
int
a
=
4;
int
b
=
3;
float
d
=
5;
int
c
=
a/b;
//
变量c的结果就是1,本来4/3=1.333(为了与被除数a的类型一致,所以取了整数部分,舍去小数部分)
float
e
=
d/a;
//
e的值就是1.25,因为d是float类型的
咎素花单裳
2020-05-07 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:999万
展开全部
你后面的3还有2是整型,除下来的结果是整型,但是你的输出确实浮点型,编译器就出错了啊……需要强制转换;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戏蕾孟云
2020-05-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:28%
帮助的人:648万
展开全部
因为编译时候没法知道其是什么类型的数,所以可以稍微改一下,在3和2后面加一个小数点
#include
main()
{
printf("%f\n",
3./2.);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式