百鸡问题 为什么运行结果只有一个“0,25,75”?

来源:百度知道 编辑:UC知道 时间:2024/06/16 19:40:06
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
这是我编的:
#include <stdio.h>
main()
{
int x,y,z;

for (x=0 ;x <= 20 ; x++)
{
for(y =0 ;x <= 33;y++)
{

z = 100 - x - y;
if (5*x + 3*y+ z/3.0 ==100)
{
printf("x,y,z分别为%d,%d,%d",x,y,z);
}

}

}
}

你的程序第二个for错了,里面的条件应该使用y<=33,否则会死循环的。

程序修改如下:

#include <stdio.h>
main()
{
int x,y,z;
for (x=0;x<=20;x++)
{
  for(y=0;y<=33;y++)
  {
    z = 100 - x - y;
    if (5*x + 3*y+ z/3.0 ==100)
    {
      printf("x=%d,y=%d,z=%d\n",x,y,z);
    }

  }
}
}

运行结果为:

x=0,y=25,z=75
x=4,y=18,z=78
x=8,y=11,z=81
x=12,y=4,z=84

一个大鸡吃5担,一个中鸡吃3担,3个小鸡吃一担,你第一个没有循环好!最里面大括号不要