c语言 鸡兔同笼

九头鸟(传说中的一种怪鸟,它有九个头,二只脚)、鸡和兔子关在一个笼子里,数数它们的头数正好是k,数数它们的脚数也正好是k。请计算其中九头鸟、鸡和兔子各有多少只?(九头鸟、鸡和兔子确保至少各有1只)
要求:
输入数据只包含一个整数k(k<=100),且保证有解。
依次输出九头鸟、鸡和兔子的数目。 如果有多组解,则每组解占一行。
例如:输入:100
输出:
7 31 6
8 14 14

#include <stdio.h>

void main()

{    int a,b,c,d;

printf("这是一个用于算鸡兔同笼的小程序\n请输入鸡兔的总数"); 

scanf("%d",&a); 

if(a>=0)

{

printf("\n请输入鸡兔脚的总数");

scanf("%d",&b);

if(b%2==1)

printf("脚的数量出现奇数,真奇怪啊!\n");

else if(b<=a*4&&b>=a*2)

{

c=(4*a-b)/2; // 鸡的数目 

d=a-c;  // 兔的数目 

if(c*2+d*4==b)

printf("鸡有%ld只\n兔有%ld只\n",c,d); // c和d反了 

else

printf("这个真难,计算机也没法算!\n");    

}

else

printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n",a*2,a*4);    

}

else

printf("数量不能为负!\n");    

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-24

#include<stdio.h>

int main()

{ int f,i;

  scanf("%d",&f);

  printf("鸡\t兔\n");

  for(i=1;i<f/4;i++)

    printf("%d\t%d\n",(f-4*i)/2,i);

 return 0;

}

第2个回答  2018-08-29
#include int main() { int a,b; int j,t; printf("请输入有多少个头?\n"); scanf("%d",&b); printf("请输入有多少只脚?\n"); scanf("%d",&a); j=(b*4-a)/2; t=b-j; printf("鸡的只数是%d,兔的只数是%d\n",j,t); return 0; } 这样?本回答被网友采纳
第3个回答  2019-09-24
#include<stdio.h>
int main()
{
int h,f,i,a,b;
printf("请输入头的个数h和脚的个数f:\n");
while(scanf("%d%d",&h,&f)!=EOF)
{
for(i=0;i<=h;i++)
{
a=i;
b=h-i;
if(a*2+b*4==f)
break;
}
if(i<=h)
printf("鸡有%d只,兔有%d只。\n",a,b);
else
printf("无解。\n");
}
return 0;
}
EOF是文件末尾end of file的意思,也就是这个程序可以输入多组测试数据,如果默认有解那么把后面的if和else改成一句printf就可以了
第4个回答  2019-09-24
大概过程如下:

void main()
{
int h,f,j,t;

printf(“\n请输入鸡兔总头数:”);
scanf(“%d”,&h);
printf(“\n请输入鸡兔总脚数:”);
scanf(“%d”,&f);
∥判断输入数正确性
if(f>4*t ll f<2*t f%2==0)
{ printf(”输入错误”);
return;
}
t=(f-2*t)/2; ∥计算兔子数
j=(4*t-f)/2; //计算鸡的数
printf("\n兔子数=%4d只",t);
printf("\n鸡的数=%4d只",j);
return;
}
相似回答