鸡兔同笼的c语言如何编?

鸡兔头共a只,脚b只,问鸡兔共多少只??
鸡、兔的头共a只,脚共b只,问鸡兔共多少只

这是我刚刚编出来的,其中 head feet 表示头和脚的总数(就是你说的a 和 b)。rhead rfeet 分别表示兔子的头和脚的个数 , chead cfeet 分别表示鸡的头和脚的个数。
算法思想:
穷举法,将所有情况算出,然后一一验证。让rhead从0取到head这样就可以算出chead的值两种动物的头的数知道了就可以算出总的腿数,然后跟feet比较即可。如果成功就输出鸡和兔子的数量。
#include <stdio.h>
void main()
{
int head,feet,chead,rhead,cfeet,rfeet;
scanf("%d %d",&head,&feet);
for(rhead=0;rhead<=head;rhead++)
{
chead=head-rhead;
cfeet=chead*2;
rfeet=rhead*4;
if(feet==cfeet+rfeet)
{
printf("chicken : %d rabbit : %d",chead,rhead);
exit(0);
}
}
printf("fail!\n");
}
希望对你有所帮助。呵呵。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-26
这是我刚刚编出来的,其中 head feet 表示头和脚的总数(就是你说的a 和 b)。rhead rfeet 分别表示兔子的头和脚的个数 , chead cfeet 分别表示鸡的头和脚的个数。
算法思想:
穷举法,将所有情况算出,然后一一验证。让rhead从0取到head这样就可以算出chead的值两种动物的头的数知道了就可以算出总的腿数,然后跟feet比较即可。如果成功就输出鸡和兔子的数量。
#include <stdio.h>
void main()
{
int head,feet,chead,rhead,cfeet,rfeet;
scanf("%d %d",&head,&feet);
for(rhead=0;rhead<=head;rhead++)
{
chead=head-rhead;
cfeet=chead*2;
rfeet=rhead*4;
if(feet==cfeet+rfeet)
{
printf("chicken : %d rabbit : %d",chead,rhead);
exit(0);
}
}
printf("fail,\n");。
第2个回答  2008-09-14
int x,y; //x代表鸡的只数,y代表兔的数量
for(x=0;x<=a;x++)
for(y=0;y<=a;y++)
if(x+y==a&&2*x+4*y==b)
printf("鸡的只数为%d,兔的数量为%d",x,y);
第3个回答  2008-09-14
这个刚编出来的 检测过。。希望对你有帮助。

void main()
{
int j,k,a,b;
system("cls");
printf("tou=");
scanf("%d",&a); -------\*输入头有多少*\
printf("\n%d>n>%d&\tn%%2=0\n",4*n,2*n);\*显示脚可以输入的范围*\
printf("jiao");
scanf("%d",&b);--------\*输入脚的只数*\
for(k=0;k<a;k++)
{
j=a-k;
if(j*2+k*4==b) printf("ji---%d\ttu---%d",j,k);
}
getch();
}
第4个回答  2008-09-14
经典的爱因斯坦问题啊
(b-2a)/2 为兔子的个数
剩下的是鸡个数
{int x,y,z;/*x为头的个数,y为脚的个数*/
scanf("%d,%d",x,y);
z=(y-2x)/2;
printf("%d\,%d",z,x-z);
}