上课时遇到的一个问题
是一个百元百鸡的问题:一个老人欲用100元买100只鸡,其中公鸡卖2元,母鸡卖3元,小鸡卖0.5元,求所有的解。
是同学问我的,但是我也搞不懂为什么结果出不来。
#include<stdio.h>
int main()
{
int x, y, z; //设公鸡为x,母鸡为y,小鸡为z
for (x = 1; x < 51; x++) //因为公鸡两元一只,不可能大于51
for (z = 2; z < 49; z = z + 2) //小鸡只能为偶数,所以就设初始量为2,并且每次加2
{
y = 100 - x - z; //用(100 - x - z)代替y
if (2 * x + 3 * y + 0.5 * z == 100) //判断是否满足条件:消耗一共一百元
printf("老大爷要买公鸡%d\n母鸡%d\n小鸡%d\n\n", x, y, z);
}
}
而如果把第二个for循环的变量“z”改成“y”,程序就能正常运行。
想了好久,着实是想不通为什么,麻烦各位指点一下!