一只公鸡值五钱;一只母鸡值三钱;三只小鸡值一钱,现在想用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
#include<stdio.h>
main()
{
int cock,hen,chicken;
for(cock=0; cock<=20; cock++)
for(hen=0; hen<=33; hen++)
for(chicken=0; chicken<100; chicken++)
{
if((5*cock+3*hen+chicken/3.0==100)&&(cock+hen+chicken==100))
printf("公鸡的数量:%2d\t母鸡的数量%2d\t小鸡的数量%2d\n ",cock,hen,chicken);
}
return 0;
}
需要注意点是:
1.问题分析:用百钱如果在1买公鸡,最多可以买20只;但是题目要求要一百只,由此可知,所买公鸡总数在0~20。同理,母鸡数量0~33,小鸡可以买300只,但题目要求,所以知道小鸡最多100只。
2.算法设计:对于不定方程组,我们可以利用穷举循环的方法来解决,也即是通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。可用语句for(cock=0;cock<=20;cock++);实现。
3.知识点补充:while(表达式){循环体};do{循环体}while(表达式);for(表达式1;表达式2;表达式3){循环体};
4.关键点 控制条件即为语句
if((5*cock+3*hen+chicken/3.0==100)&&(cock+hen+chicken==100))
注意:C语言中两个整数相除得到的结果仍为整数,“/”两边有一个数为float型得到的结果即为float型,在以后的编程时要注意对“/”两边数据类型的处理。