⑴ 用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
&&
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语言解决鸡兔同笼问题
多次修改后面有个精减版的
#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语言怎么样编写
1、编写思路如下:
假设有x只鸡,y只兔,两者一共有m只头,n只脚,则有:
x + y = m ; 2 * x + 4 * y = n ;
即得到关系式,x + 2y =n/2 , x + y = m , y = n/2 - m , x = 2 * m - n/2。
2、代码及注释如下:
#include<stdio.h>
main ( )
{
int a, b ;
printf("请分别输入动物头与脚的数目: ");
scanf("%d%d",&a,&b); //头数为a, 脚数目为b;
printf("一共有%d只鸡,%d只兔子 ",b/2-a,2 * a - b/2);
}
(4)用c语言编译鸡兔同笼问题扩展阅读:
常见鸡兔同笼类型问题:
1、班主任张老师带五年级(2)班50名同学栽树,张老师栽5棵,男生每人栽3棵,女生每人栽2棵,总共栽树120棵,问几名男生,几名女生?
2、大油瓶每瓶装4千克,小油瓶2瓶装1千克,现有100千克油装了共60个瓶子。问大小油瓶各多少个?
3、小毛参加数学竞赛,共做20道题,得67分,已知做对一道得5分,不做得0分,错一题扣1分,又知道他做错的题和没做的同样多。问小毛做对几道题?
4、有蜘蛛,蜻蜓,蝉三种动物共18只,共有腿118条,翅膀20对(蜘蛛8条腿;蜻蜓6条腿,2对翅膀;蝉6条腿,1对翅膀),三种动物各几只?
⑸ C语言中鸡兔同笼问题的代码
#include<stdio.h>
voidmain()
{inta,b,c,d;
printf("这是一个用于算鸡兔同笼的小程序 请输入鸡兔的总数");
scanf("%d",&a);
if(a>=0)
{
printf(" 请输入鸡兔脚的总数");
scanf("%d",&b);
if(b%2==1)
printf("脚的数量出现奇数,真奇怪啊! ");
elseif(b<=a*4&&b>=a*2)
{
c=(4*a-b)/2;//鸡的数目
d=a-c;//兔的数目
if(c*2+d*4==b)
printf("鸡有%ld只 兔有%ld只 ",c,d);//c和d反了
else
printf("这个真难,计算机也没法算! ");
}
else
printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d! ",a*2,a*4);
}
else
printf("数量不能为负! ");
}
⑹ c语言:鸡、兔同笼,鸡比兔多15只,鸡、兔共有脚132只,问鸡、兔各多少只
解:设兔有x只,则鸡有(x+15)只。
4x+2(x+15)=132
4x+2x+30=132
6x=102
x=17
17+15=32(只)
答:鸡有32只,兔有17只。
⑺ 鸡兔同笼问题C语言程序编写
鸡兔同笼,共有35个头,94条腿,求鸡和兔子各有多少只?
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d;
a=35,b=94;
c=2*a-b/2;
d=b/2-a;
cout<<"c="<<c<<"d="<<d<<endl;
return 0;
}
c=23 d=12
拓展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:C语言_网络
⑻ 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语言鸡兔同笼问题
数组定义错误。C语言中不能像这样定义变量a,然后定义数组m[a]。这个错误导致了你程序运算的错误。
修改方法:int m[a],n[a];改为int m[100],n[100];
即不要用变量a,而用一个常数。只要保证输入的a不大于100就可以了。
如果想用变量作为数组的界限长度,要用到动态数组,不能用你现在的这种方法。