c语言编程鸡兔同笼的问题

我们老师出了这个问题,我试着编了下,内容如下设鸡为x,兔为y,总头数为h,总脚数位f,求x,y。
#include"stdio.h"void main(){ int x,y,h,f; scanf("%d%d",h,f); x=(4*h-f)/2; y=h-x; printf("%d%d\n",x,y);}这样算出来的答案很离谱,我随便输两个几十的数字进去给出的答案都是上千上百的,还有负数,这是为什么?我也把那两个“=”改成了“==”试了下,结果却说我编译不正确,我很疑惑啊,不是说数学运算的时候要把等号写成那样么?我经常遇到这个问题,就是=和==搞不清。望高手指教

#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个回答  2013-07-31
给你两个建议、第一、如果输入脚数大于头数怎么办?、、第二、如果算出来的数为小数点怎么办?、、最后、给你说说scanf这个函数、必须有 &这个符号 、在这个阶段你只需要记住、、scanf("%d%d",h,f);需要改为scanf("%d%d",&h,&f);、、
第2个回答  2013-07-31
用遍历啊嵌套循环!!
第3个回答  2013-07-31
scanf("%d%d",h,f); 这句改为scanf("%d%d",&h,&f);