关于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;
} 展开
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;
} 展开
4个回答
展开全部
因为你的X,Y都是整形int,乘以0.5以后的结果系统自动只保留整数部分,所以不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你定义的都是整型变量,*0.5就变成浮点数运算啦
/2的话还是按整型来运算,就像是1/2结果是0,浮点运算的话1/2.0就变成了0.5
/2的话还是按整型来运算,就像是1/2结果是0,浮点运算的话1/2.0就变成了0.5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-31
展开全部
if((4*x+3*y+(36-x-y)/2) == 36)
两个整型量相除,最后取整数部分;
两个整型量相除,最后取整数部分;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询