⑴ c语言鸡兔同笼代码
#include
main()
{
unsigned
long
int
a,b,c,d;
printf("这是一个用于算鸡兔同笼的小程序(仅能输入整数,使用回车键切换)\n请输入鸡兔的总数");
scanf("%d",&a);
printf("\n请输入鸡兔脚的总数");
scanf("%d",&b);
if(b%2
!=
0)
{
printf("输入的鸡兔脚的总数有错误!");
return
0;
}
c=(4*a-b)/2;
//
鸡的数目
d=a-c;
//
兔的数目
if(c*2+d*4==b)
printf("鸡有%ld只\n兔有%ld只",c,d);
else
printf("同学,我看你给的数有错吧!");
}
///首先鸡兔同笼的问题是
输入的是总头数和总脚数,我不懂你程序中怎么就输入一个脚数。
///你计算的公式,看不懂,根据什么原理计算的??
⑵ C语言编写鸡兔同笼的问题
#include<stdio.h>
int main()
{
int a,b,M,N;
printf("请输入鸡兔的总头数\n");
scanf_s("%d",&a);
printf("请输入鸡兔的总腿数\n");
scanf_s("%d",&b);
scanf_s("%d",&M);
M=(2*a)-(b/2);
printf("鸡的数目为%d只");
scanf_s("%d",&N);
N=(b/2)-(a);
printf("兔的数目为%d只");
return 0;
}
我目前是C语言的新手,目前只会做这一类。如果用的是VS(visual studio)编程的话,scanf后必须加_s,这是VS独有的,其他的编程软件随意。
⑶ 用C语言编写鸡兔同笼问题
intm=0,n=0;
inta,b;
printf("总头数");
scanf("%d",&n);
printf("总腿数");
scanf("%d",&m);
b=(m-2n)/2
a=n-b;
if(a+b==n&&2*a+4*b=m&&a>=0&&b>=0)
printf("鸡和兔各%d,%d只",a,b);
else
printf("Noanswer");
⑷ 用C语言怎么打鸡兔同笼
#include<stdio.h>
int main()
{ int f,i;
scanf("%d",&f);
printf("鸡 兔 ");
for(i=1;i<f/4;i++)
printf("%d %d ",(f-4*i)/2,i);
return 0;
}
⑸ c语言解决鸡兔同笼问题
多次修改后面有个精减版的
#include
void
main(
)
{
int
ret
=
0;
//
表示最后一个printf的返回值
while(1)
{
int
h,f,c,r;
printf("请输入头的数目:");
scanf("%d",&h);
printf("\n请输入脚的数目(必须为偶数):");
scanf("%d",&f);
while(f%2!=0
&&
f
!=
0
)
//加上一个输入0值继续的条件,这里的while
循环可以不要了,后面的两个循环,再加上if的判断条件,已经解决了这里不为偶数的问题(个人认为,验证过了)
{
printf("\n输入脚的数目为奇数,请重新输入脚的数目(必须偶数):");
scanf("%d",&f);
}
while(f<2*h
&&
h!=
0)//同上
{
printf("\n输入脚的数目过小,请输入脚的数目(必须偶数):");
scanf("%d",&f);
/*
在这里加上
if(
f
%2
!=
0)
continue;
*/
/*作用是输入的不是偶数,就要重新输入
*/
}
while(f>4*h&&h!=0)//同上
{
printf("\n输入脚的数目过大,请输入脚的数目(必须偶数):");
scanf("%d",&f);
/
*
if(
f
%
2
!=
0)
continue;
*/
/*作用同上*/
}
for(c=0;c<=h;c++)
for(r=1;r<=h;r++)
//这句改成:for(r=0;
r
<=
h-c;
r++)好点,减少的循环的次数,加了效率
{
if(c+r==h&&2*c+4*r==f)
ret
=
printf("\n鸡的数目为%d,兔子的数目为%d\n\n",c,r);
}
if(
ret
==
39)
/*作用是输入一次成功后,结束大循环,
可以不要*/
break;
}
}
/***********************************************************************/
#include
void
main(
)
{
int
ret
=
0;
//
表示最后一个printf的返回值
while(1)
{
int
h,f,c,r;
printf("请输入头的数目:");
scanf("%d",&h);
printf("\n请输入脚的数目(必须为偶数):");
scanf("%d",&f);
while(f%2!=0
&&
f
!=
0
&&
h
!=
0)
//这里的不等于的条件可以不加
{
printf("\n输入脚的数目为奇数,请重新输入脚的数目(必须偶数):");
scanf("%d",&f);
if(
f
>
4h
||
f
<
2h)
continue;
}
for(c=0;c<=h;c++)
for(r=1;r<=h;r++)
//这句改成:for(r=0;
r
<=
h-c;
r++)好点,减少的循环的次数,加了效率
{
if(c+r==h&&2*c+4*r==f)
ret
=
printf("\n鸡的数目为%d,兔子的数目为%d\n\n",c,r);
}
if(
ret
==
39)
/*作用是输入一次成功后,结束大循环,
可以不要*/
break;
}
}
⑹ 怎么用c语言编译一个鸡兔同笼的问题
#include <stdio.h>
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;
}
这样?
⑺ 用C语言解决鸡兔同笼问题 鸡兔共有35头 鸡兔脚共有94足 用二元一次方程解决
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int i;
int j;
for(i =1;i < 35;i++){
for(j=1;j < 35;j++){
if(i*2 + j*4 == 94){
printf("ji:%d tu:%d\n",i,j);
}
}
}
return 0;
}
⑻ c语言算法,鸡兔同笼
已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解则输出No answer。
输入:
两个整数b和m,如上所述。
输出:
鸡的数目和兔的数目。
我们假设a = 鸡只数,b = 兔只数(兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数,a = ( 4*n - m )/2。
总只数-鸡的只数=兔的只数,b = n - a。
具体代码:
#include "stdio.h"
int main() {
int a,b,n, m;
// a鸡的数量
// b兔的数量
// n鸡兔总数
// m总脚数
scanf("%d %d", &n,&m);
a = (4 * n - m) / 2;//算出鸡的数量
b = n - a;//算出兔的数量
if (a <= 0 || b <= 0) {
//结果小于等于0,答案不成立,无解
printf("No answer");
} else {
//结果大于0
printf("%d %d", a, b);
}
return 0;
}
(8)c语言解决鸡兔同笼扩展阅读:
鸡兔同笼解题思路:如果先假设它们全是鸡,于是根据鸡兔的总数就可以算出在假设下共有几只脚,把这样得到的脚数与题中给出的脚数相比较,看看差多少,每差2只脚就说明有1只兔,将所差的脚数除以2,就可以算出共有多少只兔。
概括起来,解鸡兔同笼题的基本关系式是:兔数=(实际脚数-每只鸡脚数×鸡兔总数)÷(每只兔子脚数-每只鸡脚数)。类似地,也可以假设全是兔子。