鸡兔同笼的c语言
A. c语言鸡兔同笼
多次修改后面有个精减版的
#include <stdio.h>
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 <stdio.h>
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;
}
}
B. C语言鸡兔同笼代码
#include <stdio.h>
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. 用C语言编写鸡兔同笼问题
#include
int
main()
{
int
chicken,rabbit;//鸡,兔子
int
m,n;//头,脚
printf("m=,n=");
scanf("%d
%d",&m,&n);
for(chicken=0;chicken<=m;chicken++)//鸡的数量从0到总头数m尝试
{
if(chicken*2+rabbit*4==n)//如果总脚数与输入的总脚数相同
{
printf("%d
%d",chicken,rabbit);//分别输出鸡、兔
return
0;//停止程序
}
}
//for执行完表示找不到
printf("0");
return
0;
}
D. C语言编程鸡兔同笼怎么写代码
#include <stdio.h>
main()
{ unsigned long int a,b,c,d;
printf("这是一个用于算鸡兔同笼的小程序(仅能输入整数,使用回车键切换)
请输入鸡兔的总数");
scanf("%d",&a);
printf("
请输入鸡兔脚的总数");
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只
兔有%ld只",c,d);
else printf
E. 鸡兔同笼的问题 c语言怎么样编写
鸡兔同笼是中国古代的数学名题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
这四句话的意思是:
有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”
程序如下:
#include <stdio.h> int main()
{ int T; int n; int m;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
if((m-2*n)>=0 && (m-2*n)%2==0 && (4*n-m)>=0 && (4*n-m)%2==0)
printf("%d %d ",(4*n-m)/2,(m-2*n)/2);
else
printf("No answer ");
} return 0;
}
(5)鸡兔同笼的c语言扩展阅读:
C语言新手编程注意事项:
1、书写标识符时,忽略了大小写字母的区别。
2、忽略了变量的类型,进行了不合法的运算。
3、将字符常量与字符串常量混淆。
4、忽略了“=”与“==”的区别。
5、忘记加分号。
6、多加分号。
7、输入变量时忘记加地址运算符“&”。
8、输入数据的方式与要求不符。
F. 鸡兔同笼C语言
#include<stdio.h>
int main(){
int a,b,j,t;
scanf("%d %d",&a,&b);
for(j=0;j<=a;j++){
t=a-j;
if(j*2+t*4==b){
printf("%d %d",j,t);
return 0;
}
}
printf("Error\n");
return 0;
}
G. 鸡兔同笼的问题 c语言怎么样编写
输入说明:
输入为两个正整数,第一个为
M
的值,第二个为
N
的值,用空格分隔。
输出说明:
若有解,输出两个整数,用空格分隔,第一个代表鸡的只数,第一个代表兔子的只数;若无解,直接输出一个
0。
算法:以列举法写程序,让计算机从鸡为0开始执行计算,利用循环语句计算大量次数后,得出最终结果。
具体程序为:
#include
int
main()
{int
chicken,rabbit;//鸡,兔子
int
M,N;//头,脚
printf("M=,N=");
scanf("%d
%d",&M,&N);
for(chicken=0;chicken<=M;chicken++)//鸡的数量从0到总头数M尝试
{if(chicken*2+rabbit*4==N)//如果总脚数与输入的总脚数相同
{printf("%d
%d",chicken,rabbit);//分别输出鸡、兔
return
0;//停止程序}}//for执行完表示找不到
printf("0");return
0;}
(7)鸡兔同笼的c语言扩展阅读:
鸡兔同笼问题算法有很多种,编写出的程序不尽相同。下面列举几种算法,编写程序会更为简单一些。
有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
(1)假设全是鸡:2×35=70(只),鸡脚比总脚数少:94-70=24
(只)
兔子比鸡多的脚数:4-2=2(只),兔子的只数:24÷2=12
(只),鸡的只数:35-12=23(只)
假设全是兔子:4×35=140(只),兔子脚比总数多:140-94=46(只)
兔子比鸡多的脚数:4-2=2(只),鸡的只数:46÷2=23(只),兔子的只数:=35-23=12(只)(2)设鸡有x只,兔有y只。
解得
参考资料:鸡兔同笼(一种数学奥数题目)_网络