题目:鸡兔同笼,输入鸡和兔的头的数量,输入鸡和兔的脚的数量,计算出多少只鸡和多少只兔。(注意,提示脚的数量不能是奇数,脚的数量不能少于头的数量的两倍,脚的数量不能大于头的数量的4倍)
公式:
兔的数量=(脚的数量-2*头的数量)/2
鸡的数量=头的数量-兔的数量
问题:不知道中间注意事项那里的表达哪里错了,求解答,谢谢
问题代码:
#include<stdio.h>
int main()
{
int a,b,c,d,m,n;
printf("请输入鸡头、兔头、鸡脚、兔脚的数量:\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(c%2!=0||d%2!=0||c<=2a||d<=2b||c>=4a||d>=4b)
printf("enter the data is error!");
else
{
n=((c+d)-2*(a+b));
m=(a+b)-n;
}
printf("兔子的数量为n,鸡的数量为m\n",&n,&m);
return 0;
}
鸡和兔的脚应该都为偶数,所以
1、if(c%2!=0||d%2!=0||c<=2a||d<=2b||c>=4a||d>=4b)
改为:
if(c%2!=0||d%2!=0||c<=2 * a||d<=2 * b||c>=4 * a||d>=4 * b)
=======================================================================================
2、printf("兔子的数量为n,鸡的数量为m\n",&n,&m);
改为:
printf("兔子的数量为%d,鸡的数量为%d\n",n,m);
#include<stdio.h>
int main()
{
int a,b,m,n;
printf("请输入鸡头+兔头、鸡脚+兔脚的数量:\n");
scanf("%d%d",&a,&b);
if(a>4b||b%2!=0)
printf("enter the data is error!");
else
{
//m+n=a,2m+4n=b
//n=a-m,2m+4(a-m)=b
m=0;
while(m<a)
{
if(2*m+4*(a-m)==b)
{
break;
}
m++;
}
n=a-m;
printf("兔子的数量为%d,鸡的数量为%d",n,m);
}
return 0;
}