❶ Help,求解鸡兔同笼问题(用c语言编程)
给你个思路:
1.兔子和鸡的脚都是偶数 得到:n只脚的n是偶数;
2.n可以用一个数子来表示,即n=2k,k是自然数;
3.判断k是奇数还是偶数,如果是偶数,则笼子中最少有n/4只动物,如果是奇数,那么笼子中最少有(k-1)/2只兔子+1只鸡(这个可以输出最少值);
4.无论k是奇数还是偶数,笼子中最多有k只动物(这个可以输出最大值)。
end
程序是写出来的,关键是思路要对。
❷ 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;
}
(2)鸡兔同笼c语言编程教程扩展阅读:
鸡兔同笼解题思路:如果先假设它们全是鸡,于是根据鸡兔的总数就可以算出在假设下共有几只脚,把这样得到的脚数与题中给出的脚数相比较,看看差多少,每差2只脚就说明有1只兔,将所差的脚数除以2,就可以算出共有多少只兔。
概括起来,解鸡兔同笼题的基本关系式是:兔数=(实际脚数-每只鸡脚数×鸡兔总数)÷(每只兔子脚数-每只鸡脚数)。类似地,也可以假设全是兔子。
❸ 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
❹ 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语言
#include <stdio.h>
int main() {
for (int i = 1; i < 35; i++)
if (2 * i + (35 - i) * 4 == 94)
printf("鸡有%d只,兔有%d只 ", i, 35 - i);
return 0;
}
❻ 用C语言穷举法编写鸡兔同笼
#包括中
无效的主要()
{
整数鸡,兔;
的printf(“鸡\吨兔\
N”的);
的(鸡=
0;鸡<=
35;鸡+
+)
{
兔子=
35
-
鸡;
如果(8
*兔肉+
2
*鸡==
94)的printf(“%d个\
T%D
\
N”的,鸡,兔);
❼ 用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语言编程:鸡兔同笼:已知鸡和兔的总数量为n,总腿数为m,输入n和m,输出兔的数目。如果无解,
第一题的话我给你个高效率的算法吧,思想很简单,但略微奇葩了点,通过所有动物减去两只脚,剩下兔子还剩两只脚,来计算兔子数,然后也能得出鸡的数量,这个你看看吧:
#include<stdio.h>
main()
{
//为了你能简单的看懂,按照你给出的变量定义,并分开定义
int n; //总数量
int m;//总腿数
int sumt=0;//兔子的数量
int sumj=0;//鸡的数量
int sum=0;
printf("输入总数量:");
scanf("%d",&n);
printf("输入总腿数:");
scanf("%d",&m);
sumt=(m-2*n)/2;
sumj=n-sumt;
sum=sumt*4+sumj*2;
if(sum!=m || sumt<0 || sumj<0)
{
printf("no answer\n");
}
else
{
printf("鸡的数量%d,兔子的数量%d\n",sumj,sumt);
}
}
第二题就简单点吧,看注释:
#include<stdio.h>
main()
{
int a[3],k,i,j;
printf("输入第一个数:");
scanf("%d",&a[0]);
printf("输入第二个数:");
scanf("%d",&a[1]);
printf("输入第三个数:");
scanf("%d",&a[2]);
//这样子输入方便你理解,也可以这样解决 scanf("%d%d%d",&a[0],&a[1],&a[2]);
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
//这样循环的话效率低,但好在容易理解,也能解决int类型数量里面的数,多少个都成,但那时候不确定的话输入输出就要循环了
printf("%d>%d>%d/n",a[0],a[1],a[2]);
}
❾ 鸡兔同笼问题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语言_网络