c语言中1除以2为什么等于0

 我来答
天云小店
2015-05-16 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:785万
展开全部

因为1默认的是int型的常量,所以1/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类型的
李卿麒
2012-07-11
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
你问的是1/2 ,还是1%2?
如果是1/2 ,是0,因为1和2都是整形常量,c语言默认结果为整形值,所以是0.5取整为0,c语言的取整和数学上的不一样,无论小数部分是多少都是舍弃。
如果是1%2,也是0。因为%是取余运算符。1除以2的余数,也是0.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
余镇岗
2012-07-11 · TA获得超过225个赞
知道答主
回答量:93
采纳率:0%
帮助的人:56.2万
展开全部
因为,1是整形,2也是整形,所以除出来,必定要是整形(C语言里的要求),其实结果是0.5,但0.5转为整形的时候就是0,所以为0 ,如果你是1.0/2.0,那就应该会不一样啦~~ 应为1.0,2.0 都不再是整形,额,C好久没接触了,嘎嘎
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随心鸟人
2012-07-11 · 超过18用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:16.9万
展开全部
c语言中除的时候,只取其整数部分,1除以2整数部分为0,所以取0,取余的时候结果为1……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奇奇怪怪知识杂货铺
2012-07-11 · TA获得超过750个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:218万
展开全部
1除2得到的本应该是0.5 ,但是由于除数和被除数都为int 类型,则.5部分就被省去,只剩下前面的0了。试试将1 2作为float类型的变量,再做除法,看看结果~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式