百钱买百鸡,关于else语句的问题
这是参考百度后写出来的代码,虽然刚开始有点不理解,尤其是看不懂算法。一个人琢磨了好久终于弄懂了,把代码写了注释,请各位前辈看看理解的对不对。本人数学不大好,能有这进步还算是满意了。请大家不要取笑,呵呵。#include<stdio.h>
int main()
{
int x,y,z;//设:公鸡个数为x只,母鸡个数为y只,买小鸡花的钱为z
for(x=0;x<20;x++)
for(y=0;y<33;y++)
for(z=0;z<33;z++)//因为x+y+z个数为100,买三者花的钱总数也为100,所以z<33,也就是小鸡数量不能超于100
if((5*x+3*y+z==100)&&(x+y+3*z==100))//买小鸡花钱总数为Z,个数=总价/每只小鸡的单价,小鸡单价为1/3,所以个数为z*3
{
printf("公鸡为%d只, 母鸡为%d只,小鸡为%d只\n",x,y,3*z);
}
return 0;
}
另外,为什么在if语句后面添加else分支时,程序跳过if语句,直接就执行else分支的语句呢?而且是输出的内容不断循环,直到循环结束。请大家知道的解答下?感激不尽!还打算明天重新写一个算法,困了,先睡觉。