百鸡问题c语言
//按你思路改的。
#include <stdio.h>
void main()
{
int cocks,hens,chicks,n=0;
while(n<=33)
{ //改过!改过!改过!改过!改过!改过!
chicks=3*n;
hens=0;
while(hens<=33)
{
cocks=100-hens-chicks;
if(5*cocks+3*hens+n==100&&cocks>=0) //改过!改过!改过!改过!改过!改过!
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
n++;
}
}
Ⅱ 百鸡问题C语言
代码编的根本不对,编译后钱数相加大于一百
这是我修改后的代码:#include
"stdio.h"
void
main()
{
int
x,y,z;
for(z=3;z<100;z+=3)
{
for(y=1;y<100;y++)
{
for(x=1;x<100;x++)
{
if(x*5+y*3+z/3==100)
{
printf("公鸡有%d只\n母鸡有%d只\n小鸡有%d只\n",x,y,z);
printf("\n");
}
}
}
}
}
Ⅲ c语言的百钱百鸡问题。
第一处:因为输出函数的格式控制符是%s,这个的意思是输出一个字符串,所以后面对应的三个参数应该是字符串,字符串是要加“”,所以后面三个参数都有“”
第二处:外层循环是穷举公鸡的个数,内层穷举母鸡的,因为公鸡母鸡都穷举了,所以小鸡只要用100去减他们就行了,内层里面的hens++;是改变循环变量的值,也就是穷举母鸡的个数,将母鸡从一只开始穷举,一直到33只为止
第三处:因为当公鸡取一只的时候,母鸡可取的可能性是1-33只,当公鸡取2只时,母鸡取的可能性也是1-33,所以跳出内层循环时,母鸡的值又要从1开始,因此该句hens=1;是把母鸡的值归1
第四处:也是同第二处,改变外层循环变量的值,也就是改变公鸡的个数,将公鸡从第一只开始举例,一直到20只为止
Ⅳ C语言百元百鸡问题
穷尽法是利用计算机计算迅速的"笨"办法得到结果,利用多重循环,只要列出x,y,z的所有可能性设置循环起止值即可
公鸡x取值范围: 0只~100元/2元只
母鸡y取值范围: 0~100/3
小鸡z取值范围: 0~200只(2只2只地买,省得多出0.5元钱不好算整数100元)
#include<stdio.h>
void main() { int x,y,z;
for ( x=0;x<=100/2;x++ )
for ( y=0;y<=100/3;y++ )
for ( z=0;z<=200;z+=2 )
if ( x+y+z==100 ) if ( x*2+y*3+z/2==100 ) printf("%d %d %d\n",x,y,z);
}
Ⅳ 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++;
}
}
*总是的进一步讨论这类求解不定方程总理的实现,各层循环的控制变量直接与方程未知数有关,且采用对未知数的取值范上穷举和组合的方法来复盖可能得到的全部各组解。能否根据题意更合理的设置循环控制条件来减少这种穷举和组合的次数,提高程序的执行效率,请读者考虑
Ⅵ 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 只
Ⅶ 百鸡问题 c语言
#include
<stdio.h>
#include
<stdlib.h>
#include<stdio.h>
int
main()
{
int
x,y,z;
printf("百鸡问题解:\n");
for(x=0;x<=100;x++)
{
for(y=0;y<=100;y++)
{
if(7*x+4*y==100)
{z=100-x-y;
printf("\tx=%3d
y=%3d
z=%3d\n",x,y,z);
}
}
}
printf("\n");
return
0;
}
应该是这样,你多写了个循环。
Ⅷ c语言百鸡问题
/*******************************************************************************
*百钱买百鸡问题
*问题:公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
* 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
* 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
********************************************************************************/
#include "stdio.h"
#include "conio.h"
int main()
{
int male;
int female;
int baby;
for(male=0;male<100/5;male++)
for(female=0;female<100/3;female++)
for(baby=0;baby<100;baby+=3)
{
if(male+female+baby == 100 && 5*male+3*female+baby/3 == 100)
printf(" cock hen baby\n %d %d %d",male,female,baby)
}
printf("Hello, world\n");
getch();
}
Ⅸ 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;
}
Ⅹ 百鸡问题怎么用C语言求解
用C语言解决百鸡问题的步骤如下:
1丶打开网页C语言编译环境,或者自己的安装的编译环境。
这样就解决了用C语言解决百鸡问题。