简单的和你说 你是对的 他是错的,且是典型错解 相信自己!!!
因为int定义的整行变量 所以计算中小数被自动舍去 导致一些近似值相加后也=100
因为这里小鸡一定要是3的倍数 不然就会出现该问题 对于白鸡问题初遇者 无论用for或while 编译都是会出现的一个常见错误
所以 你可以的 继续努力啊~-~
#include
int main()
{
int cocks=0,hens,chicks;
while(cocks<=20)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf(“公鸡%d只,母鸡%d只,小鸡%d只\n”,cocks,hens,chicks);
hens++;
}
cocks++;
}
return 0;
}
没看到你的代码,给你一个提示,三重循环。不懂追问。先自己多思考。
按照题目要求编写的解决百钱买百鸡问题的C语言程序如下
#include
int main()
{
int a,b,c;
for (a = 0; a <= 20; a++)
for (b = 0; b <= 33; b++)
{
c = 100 - a - b;
if (c%3==0 && 5*a + 3*b +c/3 == 100)
printf(“鸡翁%d只,鸡母%d只,鸡雏%d只\n”,a,b,c);
}
return 0;
}