C语言的百钱买百鸡,是这样理解的么?

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:37:57
C高手看看我理解的有没错啊
代码;
main()

{
int cocks=0,hens,chicks;
while (cocks<=19) (限制了公鸡的数目是大于或等于19,COOKS就是公鸡)
{hens=0; (这是什么意思?)
while(hens<=33) (在限制母鸡的数目是大于或等于33,HENS就是母鸡)
{chicks=100-cocks-hens;(限制了之后,在用100只鸡减去限制的公鸡数目和母鸡数目,但要限制在公鸡19,母鸡33的情况下算出小鸡(CHICKS就是小鸡)
if (5.0*cocks+3.0*hens+chicks/3.0==100.0) (如果满足百钱和百鸡的情况下则输出可以各种鸡买多少只,但要满足百钱)
printf("%d %d %d\n",cocks,hens,chicks);
hens++; (如果不满足上面的2个条件,则公鸡和母鸡的数目再加1,加了1之后在带回;{chicks=100-cocks-hens;来算
}
cocks++;
}
}
是这样理解吗?我的理解能力有错吗?还有,我上面说的不知道什么意思高手分析下

建议使用双重for循环解决此类问题。在我们不知道循环次数的时候才适合使用while循环。程序如下:
main()
{int x,y,z;
for(x=0;x<20;x++)
for(y=0;y<34;y++)
{z=100-x-y;
if(15*x+9*y+z==300)
printf("cocks:%d,hens:%d,chicks:%d\n",x,y,z);
}
}

main( )
{
int cocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;< BR> if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)
printf("%d,%d,%d\n",cocks,hens,chicks);
hens=hens+1;
}
cocks=cocks+1;
}
}

main()

{
int cocks=0,hens,chicks;
while (cocks<=19) /*(限制了公鸡的数目是 小于 或等于19,COOKS就是公鸡) */
{
hens=0; /*母鸡初值为0 */
while(hens<=33) /*(在限制母鸡的数目是 小于 或等于33,HENS就是母鸡) */
{
chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d %d %d\n",cocks,hens,c