关于C语言编程问题。乘0.5和除2。怎么结果不一样。大家帮忙看看。

#include<stdio.h>main(){intx,y;for(x=0;x<10;x++){for(y=0;y<13;y++){if((4*x+3*y+(36-x-... #include <stdio.h>
main()
{
int x,y;
for(x=0;x<10;x++)
{
for(y=0;y<13;y++)
{
if((4*x+3*y+(36-x-y)*0.5) == 36)

printf("男人:%d\n女人:%d\n小孩:%d\n",x,y,(36-x-y));

else
continue;

}
}

return 0;
}

这个程序改成下面。为什么结论不一样了??
#include <stdio.h>
main()
{
int x,y;
for(x=0;x<10;x++)
{
for(y=0;y<13;y++)
{
if((4*x+3*y+(36-x-y)/2) == 36)

printf("男人:%d\n女人:%d\n小孩:%d\n",x,y,(36-x-y));

else
continue;

}
}

return 0;
}
展开
 我来答
百度网友21a360264
2011-12-31 · TA获得超过1855个赞
知道小有建树答主
回答量:640
采纳率:100%
帮助的人:367万
展开全部
类型问题。C语言的整型 int 数据的算术运算结果还是整型,2是整型值,除2的结果还是整型(结果的小数部分被丢掉了),乘0.5就变成浮点型了。要得到正确的结果可将除2改成除 2.0
轩辕诗语0724
2011-12-31
知道答主
回答量:27
采纳率:0%
帮助的人:9.8万
展开全部
因为你的X,Y都是整形int,乘以0.5以后的结果系统自动只保留整数部分,所以不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fwjidt
2011-12-31 · 超过30用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:77.2万
展开全部
你定义的都是整型变量,*0.5就变成浮点数运算啦
/2的话还是按整型来运算,就像是1/2结果是0,浮点运算的话1/2.0就变成了0.5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-31
展开全部
if((4*x+3*y+(36-x-y)/2) == 36)

两个整型量相除,最后取整数部分;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式