C语言!!!鸡兔同笼问题!!!急啊!!!求高手帮助!!!

1028:鸡兔同笼
查看 提交 统计 提问
时间限制: 1000ms 内存限制: 65536kB
描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)
输出
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。

样例输入
2
3
20
样例输出
0 0
5 10

#include<stdio.h>

int main()
{
int h,a,j,k,s,n=0,m=0,q,x;
scanf("%d",&h);
for(q=0;q<h;q++)
{
scanf("%d",&a);
k=a/4;
s=a%4;
x=s%2;
if(x==0)
{
j=s/2;
n=k+j;
}
k=a/2;
s=a%2;
if(s==0)
{
m=k;
}
printf("%d %d\n",n,m);
}
return 0;
}
为什么不过啊

你的程序是一个数一算并输入,提意很明显是说一口气先全部输入,
再一气的全部计算了输出
你得在循环之前动态分配一个数组空间,并全部接收输入,输入完成后,再另做一个循环去依次计算那些被接收的数据,输入是输入,输出是输出,不是交互做的,是批量做的
批量的输入,而后批量的计算输出 你看输入样例咯追问

额。。。这就是输一个出一次结果,我朋友有做出来的,但我这个我想知道错在哪里。。。

追答

整数求解,你的解法太过高深 以至于我无法理解,我把我理解的做法表达一下:
......
if(a%2) //奇数无解
n=m=0; //没有仅一条腿的鸡也没有三只脚的猪,所以无解
else //偶数有解
{
n=a/4+a%4/2; //0-1只鸡+全部都是猪,将会有最小的动物数量
m=a/2; //全部都是鸡,有最大动物数量
}
printf("%d %d\n",n,m);
......

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-03
int main()
{
int h,a,j,k,s,n=0,m=0,q,x;
scanf("%d",&h);
for(q=0;q<h;q++)
{
scanf("%d",&a);
k=a/4;
s=a%4;
x=s%2;
if(x==0)
{
j=s/2;
n=k+j;
}
else n = k;

k=a/2;
s=a%2;
m=k;
printf("%d %d\n",n,m);
}
return 0;
}
第2个回答  2012-01-03
解:设鸡脚有2x只,兔脚有4x只。
4x―2x=28
﹝4―2﹞x=28
2x=28
x=28÷2
x=14
答:鸡和兔子各有14只。
第3个回答  2011-12-30

测试了一遍,没有问题

追问

对啊。但是在网站上提交时提示是错误的。。。

C语言!!!鸡兔同笼问题!!!急啊!!!求高手帮助!!!
你的程序是一个数一算并输入,提意很明显是说一口气先全部输入,再一气的全部计算了输出 你得在循环之前动态分配一个数组空间,并全部接收输入,输入完成后,再另做一个循环去依次计算那些被接收的数据,输入是输入,输出是输出,不是交互做的,是批量做的 批量的输入,而后批量的计算输出 你看输入样...

C语言鸡兔同笼问题!!求助!!
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...

想用c语言解答鸡兔同笼,怎么做?
鸡兔同笼问题,归根结底是一个数学问题。用C语言处理数学问题,无外乎两种方式。假定头的数量为A, 脚的数量为B。一、暴力求解:\/\/枚举鸡的数量 int flag = 0;for(i = 0; i <= A; i++) { j = A - i;if (i * 2 + j * 4 == B) { flag = 1;printf("ans is: %d, %d\\...

c语言里鸡兔同笼的算法问题
这个很简单呀,假设鸡的只数为x,兔的只数为y x+y=h总头数 2x+4y=f总脚数(鸡2只脚,兔4只脚)解这个方程式 可以算出 x=2h-1\/2f y=1\/2f-h

c语言编程算鸡兔同笼怎么编写?
main(){ unsigned long int a,b,c,d;printf("这是一个用于算鸡兔同笼的小程序(仅能输入整数,使用回车键切换)\\n请输入鸡兔的总数");scanf("%d",&a);printf("\\n请输入鸡兔脚的总数");scanf("%d",&b);c=(4*a-b)\/2; \/\/ 鸡的数目 d=a-c; \/\/ 兔的数目 if(c*2+d*4==b)...

C语言 鸡兔同笼问题 代码哪里错了
include <stdio.h>int main(){ int m, n, ji, tu; scanf("%d %d", &n, &m); \/\/10 24 ji = (m - 2 * n) \/ 2; printf("JI = %d \\n", ji); tu = n - ji; printf("TU = %d \\n", tu); return 0;} ...

c语言算法,鸡兔同笼
已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解则输出No answer。输入:两个整数b和m,如上所述。输出:鸡的数目和兔的数目。我们假设a = 鸡只数,b = 兔只数(兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数,a = ( 4*n -...

C语言:鸡兔同笼问题
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*...

C语言。鸡兔同笼问题。 鸡兔总头数h。 总脚数为f。求鸡兔各有多少只...
可以参考下面的代码(具体的数值用户可以根据需要进行定义):main(){ int h=20,int f=50;%(根据题目要求定义的H F)for(i=1;i<h;i++){int tuzi=h-i;if(2*i+tuzi*4==f)printf("鸡和兔的数量分别为%d%d “,i,c);else i++;} } ...

用C语言怎么打鸡兔同笼
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;}

相似回答