题目描述
百元百鸡问题。每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花100元钱买100只鸡,请问有哪些可能?试编程输出所有的组合。【注:每种鸡的数量都可以为零】
输入
无
输出
输出购买方案
每一种方案输出占一行,且每行按照母鸡,公鸡,小鸡的次序输出
然后行按照母鸡数量由小到大的次序输出。
例如:
x1 x2 x3
y1 y2 y3
z1 z2 z3
其中 x1 < y1 < z1
这里主要注意p,o,y的变化,开始我把它们都是设置成p,导致出现了乱码
#include<stdio.h>
int main()
{
int m[200],g[200],x[200];
int i,j,k,p=0,o=0,y=0,t;
for(i=0;i<=25;i++)
{
for(j=0;j<34;j++)
{
for(k=2;k<=100;k++)
if(k%2==0&&3*j+i*4+k/2.0==100&&i+j+k==100)
{
m[p++]=j;
g[o++]=i;
x[y++]=k;
}
}
}
for(i=0;i<p-1;i++)
{
for(j=0;j<p-1-i;j++)
{
if(m[j]>m[j+1])
{
t=m[j];
m[j]=m[j+1];
m[j+1]=t;
t=g[j];
g[j]=g[j+1];
g[j+1]=t;
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
}
for(i=0;i<p;i++)
printf("%d %d %d\n",m[i],g[i],x[i]);
return 0;
}