c语言解决百钱买鸡问题

钱买百鸡”鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?#include<stdio.h>voidmain(){intcocks,hen... 钱买百鸡”鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

#include <stdio.h>
void main()
{
int cocks,hens,chicks,n=0;
while(n<=33)
{
chicks=3*n;
hens=0;
while(hens<=33)
{
cocks=100-hens-chicks;
if(5*cocks+3*hens+n==100&&cocks>=0)
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
n++;
}
}

这个程序看不明白,哪位大侠能够解释一下。或者用你自己的程序也行
展开
 我来答
a40304
推荐于2017-12-16 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:80
采纳率:60%
帮助的人:71.3万
展开全部
chicks小鸡,cocks公鸡,hens

n是钱,因为1钱可买3小鸡,所以小鸡数对应钱数就是:chicks=3*n

外层遍历:买小鸡的钱,从0遍历到33(33块就99个小鸡了,明显用不了这么多,但作者为了保险吧)
内层遍历:买母鸡的个数,从0遍历到33个(33个母鸡也99块,与上面意图相同,尽量遍历到境界点,虽然有点不科学,但如果问题有解,在条件成立时加个跳出,也不碍事)

内层遍历的时候:cocks=100-hens-chicks; 公鸡=100-母鸡-小鸡,(确保三种鸡加起来是100)

if(5*cocks+3*hens+n==100&&cocks>=0) 意思是:所有的钱加起来是100并且公鸡个数不为负数

printf("%d %d %d\n",cocks,hens,chicks); //打完收工
hens++;//自增
}
n++;//自增
Grit_s
2013-09-14
知道答主
回答量:14
采纳率:0%
帮助的人:10万
展开全部
一句话,买所有鸡的钱加起来不能超过一百 if(5*cocks+3*hens+n==100&&cocks>=0)

这道题还没有要求是公鸡母鸡小鸡都要有,还算简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
magic风干温柔
2013-09-14
知道答主
回答量:2
采纳率:0%
帮助的人:3082
展开全部
设a,b,100-a-b,分别代表三种鸡,然后a从0到20循环,其间b也循环,对应求出100-a-b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4分33秒
2013-09-14
知道答主
回答量:18
采纳率:0%
帮助的人:6.5万
展开全部
cocks,hens,chicks代表数量,if语句表示价钱满足成立,cocks=100-hens-chicks; 表示满足总量100.
追问
为什么要n<=33
追答
当n大于33,则雏鸡大于100了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泛而不凡Dx
2013-09-14
知道答主
回答量:21
采纳率:0%
帮助的人:5.3万
展开全部
#include <stdio.h>
void main()
{
int cocks,hens,chicks,i,j,k;
for(cocks=1;cocks<=20;cocks++)
for(hens=1;hens<=33;hens++)
for(chicks=1;chicks<=100;chicks++)
if(cocks+hens+chicks==100)
{
i=cocks;
j=hens;
k=chicks;
}
printf("cocks有%d个 hens有%d个 chicks有%d个",i,j,k);
}
这是循环嵌套,运行时间较长,但最好懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式