main()
{
int x,y,z;
x=0;
while(x<=19)
{
y=0;
while(y<=33)
{
z=100-x-y;
if(5.0*x+3.0*y+z/3.0==100)
printf(“%d %d %d\n”,x,y,z);
else y++;
}
x++;
}
getch();
}
此程序中第13行加不加else得出的结果不一样。请问是怎么回事啊?
还有个比较菜的问题,就是3后面加点零就能保证得出的结果能被3整除吗?
谢谢详解!!
>> 本文固定链接: http://www.vcgood.com/archives/2323
这个题目也是百钱买百鸡问题,加else时当if条件不满足时y才++,如果不加else则不论if条件是否满足y都增1,由于变量z是int的,所以如果/3则当z小于3时其结果为0,其目的不是为了整除
谢谢,第一个问题我自己琢磨出来了。你说的这个不是为了整除,那如果不是3.0,而是3的话,得出的结论多三组,正好是不能被3整除的也在其中了。