C语言(百钱买百鸡的问题)!

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:10:59
我数学不太好,刚学C语言。不知道老师说什么。请高手用点简单的方法告诉我,好么。请不要复制网上的。代码如下;
main()

{
int cocks=0,hens,chicks;
while (cocks<=19)
{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++;
}
}

问1;while (cocks<=19)
{hens=0;
这是说当鸡(COOKS就是公鸡)的数目大于或等于19时,母鸡(HENS)的数目就是0吗?是这个意思吗?
问2;{chicks=100-cocks-hens;
小、鸡(CHICKS)的数目是由100元减去公鸡和母鸡所得到的吗?这代码是这个意思么?
问3; if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
最不懂,这有什么用?为什么小鸡要用除的?为什么要用2个==号?100.0前的那个
问4;后面为什么要有
hens++;
}
cocks++;
}

1. 没错
2. 是
3. == 代表判断是否相等 , 如果相等就是得到正确答案,就执行后面的printf输出结果
4. ++代表加1. 实际就是 hens = hens + 1

hens 要初始化啊,没具体值是不能用的哦。
你要买100只鸡啊,这个条件当然需要。
然后根据5.0*cocks+3.0*hens+chicks/3.0==100.0
可以合并成1个2员一次方程,在用whlie语句,穷举0-19的COCKS,和0-33的hens。结果就出来了啊。。自己看吧

问1;while (cocks<=19)
{hens=0;
这是说当公鸡的数目大于或等于19时,母鸡的数目下限为0,
问2;因为题目要求cocks+hens+chicks(就是所有鸡)=100
问3;5.0金钱买一只cocks,3.0金钱买一只hens,1金钱买3只chicks
chicks/3.0实际是乘法,1/3.0*chicks
==是关系运算符,=是赋值符
问4;许找下一个解

1.在C语言中,while用来控制循环结构:
while (条件表达式){ 语句(循环体) }
所以当cocks<=19时,执行hens=0,所以母鸡是0.
2这是一个赋值语句,把100-cocks-hens的值赋值给chicks,所以小鸡(CHICKS)的数目是由100元减去公鸡和母鸡所得到的
3c语言中“=”号是赋值,例如chicks=100-cocks-hens中的=号就是赋值符号,而不是等号,因为chicks是未知的,不可能划等号;“==”才是数学中的等号,一定要注意哦。这是个if条件语句,if(条件)只有当条件成立时才执行下面的语句。
4hens++就是:hens=hens+1,每执行一次hens就要加一;cocks++就是:cocks=cocks+1.
这个程序是由两个while循环和一个if条件语句构成的,你只要把while和if弄懂我相信你这道题目就ok了,而不是你数学不好的原因哦!