百元买百鸡问题求错!!!急

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:31:26
#include<stdio.h>
void main()
{
int x,g,m,n=0;
for(x=0;x<=100;x++)
for(g=0;g<=100;g++)
{
m=100-x-g;
if(0.5*x+2*g+3*m==100)
{ n++;
printf("\n第%d种方案是:x=%d,g=%d,m=%d",n,x,g,m);}
}

}
百元买百鸡问题:现有100元,要求买100只鸡。假定母鸡每只3元,公鸡每只2元,小鸡每只5角。列出所有可能的买鸡方案,其中m、g、x分别代表母鸡、公鸡和小鸡的数量,n代表解决方案的数量。
顺便高手再帮忙看看这样为什么也不行啊!!
#include<stdio.h>
void main()
{
int x,g,m,n=0;
for(x=0;x<=100;x++)
for(g=0;g<=100;g++)
for(m=0;m<=100;m++)
{
x+g+m==100;
0.5*x+2*g+3*m==100;
}
printf("%d,%d,%d",x,g,m);

}(在这个程序中,可以运行,但是有两个警告,说是"=="问题????)

感谢,请尽量详细,将两个程序都解释一下啊!!!1

将第一个程序修改如下:
#include<stdio.h>
void main()
{
int x,g,m,n=0;
for(x=0;x<=100;x++)
for(g=0;g<=100;g++)
{
m=100-x-g;
if(0.5*x+2*g+3*m==100 && x>=0 && g>=0 && m>=0)
{
n++;
printf("\n第%d种方案是:x=%d,g=%d,m=%d",n,x,g,m);
}
}
}
原因是必须使购买母鸡m,公鸡g,小鸡x数量大于等于零,这样可得七种方案:
第1种方案是:x=68,g=30,m=2
第2种方案是:x=70,g=25,m=5
第3种方案是:x=72,g=20,m=8
第4种方案是:x=74,g=15,m=11
第5种方案是:x=76,g=10,m=14
第6种方案是:x=78,g=5,m=17
第7种方案是:x=80,g=0,m=20
至于楼主提供的第二程序,警告是因为
x+g+m==100;
0.5*x+2*g+3*m==100;
这样的语句计算结果是BOOL型,而作为一个语句放在这样的循环里面是毫无意义的,程序不作任何处理,结果当然只是101,101,101。顺便说一句,楼主对C语言还是新手吧。。。

#include <stdio.h>
void main()
{
int mj,gj,xj,n=0;
printf(" 百元买百鸡问题求解方案\n") ;
printf(" ----------------------\n") ;
printf("\t母鸡\t公鸡\t小鸡\n") ;
for(mj=0;mj<=100;