C语言中鸡兔同笼问题的代码

为什么运行出来的结果很奇怪,比如输入30 60,出来的却是鸡有8168,兔子有-4072,这肯定不对啊!
#include <stdio.h>
int main()
{
int head,feet;
scanf("请分别输入头和脚的数量%d %d",&head,&feet);
float rabbit=(feet-2*head)/2.0;
float chicken=head-rabbit;
if ((int) chicken!=chicken&&(int)rabbit!=rabbit){
printf("傻逼,题错了!");
}else{
printf("鸡有%f只,兔有%f只",chicken,rabbit);
}
return 0;
}

#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个回答  推荐于2017-09-11
scanf("请分别输入头和脚的数量%d %d",&head,&feet); 这句改成以下两句,不要全写在scanf()中

printf("请分别输入头和脚的数量:");
scanf("%d%d",&head,&feet);本回答被提问者和网友采纳
第2个回答  2020-03-24
给你两个建议、第一、如果输入脚数大于头数怎么办?、、第二、如果算出来的数为小数点怎么办?、、最后、给你说说scanf这个函数、必须有
&这个符号
、在这个阶段你只需要记住、、scanf("%d%d",h,f);需要改为scanf("%d%d",&h,&f);、、
第3个回答  2015-03-15
scanf("请分别输入头和脚的数量%d %d",&head,&feet);换成下面的试试

printf("请分别输入头和脚的数量");
scanf("%d %d", &hea, &feet);