c语言百钱买百鸡问题Word下载.doc
《c语言百钱买百鸡问题Word下载.doc》由会员分享,可在线阅读,更多相关《c语言百钱买百鸡问题Word下载.doc(3页珍藏版)》请在冰豆网上搜索。
3)z的取值范围为3~99,步长为3
对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。
数据要求
问题中的常量:
无
问题的输入:
问题的输出:
intx,y,z/*公鸡、母鸡、小鸡的只数*/
初始算法
1.初始化为1;
2.计算x循环,找到公鸡的只数;
3.计算y循环,找到母鸡的只数;
4.计算z循环,找到小鸡的只数;
5.结束,程序输出结果后退出。
算法细化
算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。
步骤2和3是按照步长1去寻找公鸡和母鸡的个数。
步骤4的细化
4.1z=1
4.2是否满足百钱,百鸡
4.2.1满足,输出最终百钱买到的百鸡的结果
4.2.2不满足,不做处理
4.3变量增加,这里注意步长为3
流程图
图5-8程序执行流程图
程序代码如下
#include"
stdio.h"
main()
{
intx,y,z;
for(x=1;
x<
=20;
x++)
for(y=1;
y<
=33;
y++)
for(z=3;
z<
=99;
z+=3)
{
if((5*x+3*y+z/3==100)&
&
(x+y+z==100))/*是否满足百钱和百鸡的条件*/ printf("
cock=%d,hen=%d,chicken=%d\n"
x,y,z);
}
}
分析
程序运行结果如下:
cock=4,hen=8,chicken=78
cock=8,hen=11,chicken=81
cock=12,hen=4,chicken=84
对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即。
请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试这一方法。
版权所有:
东北大学计算中心