1. c语言:百钱百鸡问题
#include<stdio.h>
void main(){
int cockNum; //定义公鸡的数量,也就是鸡翁的数量
int henNum; //定义母鸡的数量,也就是鸡母的数量
int chickenNum; //定义小鸡的数量,也就是雏鸡的数量
int count = 0; //定义输出结果的编号
//公鸡100文钱能买100 / 5 = 20只
for (cockNum = 0; cockNum <= 20; cockNum++) {
//母鸡100文钱 能买100 / 3 = 33只,还多1文
for (henNum = 0; henNum <= 33; henNum++) {
//三种鸡的只数总和是100只,故只要确定公鸡和母鸡的只数,就能确定小鸡的只数
chickenNum = 100 - cockNum - henNum;
//三种鸡的总价格是100文,故以此为条件分别输出所有鸡的只数
if (5 * cockNum + 3 * henNum + chickenNum / 3.0 == 100) {
count++; //输出结果的编号自增
printf("%d.公鸡的数量是:%d只,母鸡的数量是:%d只,小鸡的数量是:%d只。\n",count,cockNum,henNum,chickenNum);
}
}
}
}
2. C语言百钱百鸡
#include <stdio.h>
int main()
{int x,n,a,b,c;
scanf("%d,%d",&n,&x);
for(a=0;a<=x/5;a++)
for(b=0;b<=(x-5*a)/3;b++)
{c=n-a-b;
if(c%3==0&&5*a+3*b+c/3==x)
printf("cock=%d,hen=%d,chicken=%d ",a,b,c);
};
return 0;
}
3. 百鸡问题怎么用C语言求解
用C语言解决百鸡问题的步骤如下:
1丶打开网页C语言编译环境,或者自己的安装的编译环境。
这样就解决了用C语言解决百鸡问题。
4. c语言的百钱买百鸡问题。
我国古代数学家张丘建在《算经》一书中曾提出过着名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
题目分析
如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。设公鸡x只,母鸡y只,小鸡z只,得到以下方程式组:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 <= x <= 100
D:0 <= y <= 100
E:0 <= z <= 100
如果用解方程的方式解这道题需要进行多次猜解,计算机的一个优势就是计算速度特别暴力并且无怨无悔,所以我们可以欺负她、蹂躏她!因此我们用穷举法的方式来解题,需要101^3次猜解,但对于计算机来说,小CASE!
代码清单:
#include <stdio.h>int main()
{ int i, j, k;
printf("百元买百鸡的问题所有可能的解如下:\n");
for( i=0; i <= 100; i++ )
for( j=0; j <= 100; j++ )
for( k=0; k <= 100; k++ )
{
if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 )
{
printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k);
}
}
return 0;
}
运行结果:百元买百鸡的问题所有可能的解如下:
公鸡 0 只,母鸡 25 只,小鸡 75 只
公鸡 4 只,母鸡 18 只,小鸡 78 只
公鸡 8 只,母鸡 11 只,小鸡 81 只
公鸡 12 只,母鸡 4 只,小鸡 84 只
5. c语言 百鸡问题,公鸡8元一只,母鸡6元一只,鸡仔2元4只,计算百元所买的公鸡、母鸡、鸡仔数
这个问题很简单呀!我记得是百元买百鸡吧!
#include<stdio.h>
void main()
{
int i,j,k;//分别表示公鸡、母鸡、鸡仔的数量
for(i=0;i<100/8;i++)
for(j=0;j<100/6;j++)
for(k=0;k<200;k++)
{
if(8*i+6*j+0.5*k==100&&i+j+k==100)
{
printf("公鸡的数为:%d\n",i);
printf("母鸡的数为:%d\n",j);
printf("鸡仔的数为:%d\n",k);
}
}
}
这个程序很简单,对你来说应该没问题!祝你学习C程愉快!
6. C语言 百钱买百鸡
#include<stdio.h>
void main()
{
int a,b,c;
for(a=0;a<20;a++)//公鸡可能的只数
for(b=0;b<(100-5*a)/3;b++)//母鸡可能的只数
{ c=100-a-b;//总数为100时,小鸡的只数
if(c%3==0 && a*5+b*3+c/3==100)//若小鸡只数是3的倍数,且总价为100
printf("a=%d b=%d c=%d ",a,b,c);
}
getch();
return 0;
}
7. 百钱买百鸡的C语言问题
不对,因为chicks/3这个数是个整数,他取整数部分,也就是说在clicks不是3的整倍数时,结果是错的。或者把clicks定义成double也许会可以试试。
看一下图吧,正确结果,能看清吗?
意思是一样的,就是两个等式,钱数和个数相等,用哪个都可以。
因为你要求的循环变量的增幅是定下来的,所以这样可以,或者还可以增加判断条件,来满足要求。结论是没有问题的,多种方法,多个思路。
8. C语言(百钱买百鸡的问题)
百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了着名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*题目分析与算法设计设鸡翁、鸡母、鸡雏的个数分别为cocks(x),hens(y),chicks(z),题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然cocks的值在0~20之间;
同理,hens的取值范围在0~33之间,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。
程序解释
main()
{
int cocks=0,hens,chicks;
while (cocks<=19) //公鸡只数小于19
{hens=0;
while(hens<=33) //母鸡小于33只
{chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
}
*总是的进一步讨论这类求解不定方程总理的实现,各层循环的控制变量直接与方程未知数有关,且采用对未知数的取值范上穷举和组合的方法来复盖可能得到的全部各组解。能否根据题意更合理的设置循环控制条件来减少这种穷举和组合的次数,提高程序的执行效率,请读者考虑
9. C语言中百钱百鸡的程序
#include<stdio.h>
int main()
{
int a,b,c;//各种鸡的数目
int i=0; //方程解数目
printf("百钱买百鸡,求鸡翁,鸡母,鸡雏的数目:\n");
for(a=0;a<20;a++) //外层循环控制公鸡
{
for(b=0;b<=33;b++) //内层循环控制公鸡
{
c=100-a-b; //小鸡的只数
if(c%3==0 && a*5+b*3+c/3==100)
{
//验证取c值的合理性及得到一组解的合理性
printf("%2d:鸡翁数:%2d,鸡母数:%2d,鸡雏数:%2d\n",++i,a,b,c);
}
}
}
}
10. C语言编写程序解决百钱白鸡问题
按照题目要求编写的解决百钱买百鸡问题的C语言程序如下
#include<stdio.h>
intmain()
{
inta,b,c;
for(a=0;a<=20;a++)
for(b=0;b<=33;b++)
{
c=100-a-b;
if(c%3==0&&5*a+3*b+c/3==100)
printf("鸡翁%d只,鸡母%d只,鸡雏%d只 ",a,b,c);
}
return0;
}