c语言买鸡问题
❶ c程序,买鸡问题
程序运行结果没有问题,是不是因为在运行过程中chick出现负数的原因回啊,将
for (cock = 0; cock <= n; cock++)
{
for (hen = 0; hen <= n; hen++)
改为
for (cock = 0; cock <= n/5; cock++)
{
for (hen = 0; hen <= n/3; hen++)
试试。答
❷ c语言n钱买n鸡问题
先把我改过的代码贴给你:
#include<stdio.h>
constintWeng=15;
constintMu=9;
constintChu=1;
intmain()
{
intiGold,iWeng,iMu,iChu,iFangAn=0,t=0;
scanf("%d",&iGold);
for(iChu=3;iChu<=iGold-1;iChu+=3){
for(iMu=1;iMu<=iGold-iChu-1;iMu++){
iWeng=iGold-iChu-iMu;
if(iGold*3==iWeng*Weng+iMu*Mu+iChu*Chu)
iFangAn++;
}
}
printf("%d",iFangAn);
return0;
}
你的问题在于那个判断语句。总金、鸡翁价、鸡母价都应是原价的3倍。
至于循环,我改成了雏鸡3倍递增,因为这个题目不存在浮点数,其他的问题都不大。
❸ c语言解决百钱买鸡问题
chicks小鸡,cocks公鸡,hens
n是钱,因为1钱可买3小鸡,所以小鸡数对应钱数就是:chicks=3*n
外层遍历:内买小鸡的钱,从0遍历到33(容33块就99个小鸡了,明显用不了这么多,但作者为了保险吧)
内层遍历:买母鸡的个数,从0遍历到33个(33个母鸡也99块,与上面意图相同,尽量遍历到境界点,虽然有点不科学,但如果问题有解,在条件成立时加个跳出,也不碍事)
内层遍历的时候:cocks=100-hens-chicks; 公鸡=100-母鸡-小鸡,(确保三种鸡加起来是100)
if(5*cocks+3*hens+n==100&&cocks>=0) 意思是:所有的钱加起来是100并且公鸡个数不为负数
printf("%d %d %d\n",cocks,hens,chicks); //打完收工
hens++;//自增
}
n++;//自增
❹ c语言百元买百鸡问题
其实很自简单 你的程序没有错 是题目看错了 #include<stdio.h> void main() { int a,b,c,i=0; printf("百元买百鸡方案\n"); printf("________________\n"); printf(" 母鸡 公鸡 小鸡\n"); for(a=1;a<100;a++) for(b=1;b<100;b++) { c=100-a-b; if(c%3!=0) continue; if((a*5+b*3+c/3)==100) { i=i+1; printf("方案:%d %d %d %d",i,a,b,c); printf("\n"); } } } 运行结果为 百元买百鸡方案 ________________ 母鸡 公鸡 小鸡 方案:1 4 18 78 方案:2 8 11 81 方案:3 12 4 84 Press any key to continue
点赞哦
❺ 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语言(百钱买百鸡的问题)
百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*题目分析与算法设计设鸡翁、鸡母、鸡雏的个数分别为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语言《百钱买鸡问题》写出程序并解释下谢谢
#include
<stdio.h>
void
main(void)
{
int
x,y,z;
/*
定义三种鸡的数量*/
for(x
=
1;x
<
50;x++)
/*这里用双重循环式为了让电脑用穷举法来穷举答案,符合就输出否版则继续循环*/
for(y
=
1;y
<
50;y++)
{
z
=
100
-
x
-
y;
/*每一次循权环都要初始化小鸡z的数量*/
if(5*x+2.5*y+z/3.0
==
100) /*这里用if语句是因为要确保这个问题有正确答案,找到后输出,否则继续循环*/
printf("x=%d
y=%d
z=%d",x,y,z);
}
getch();
}
给个满意吧
程序是对的
但是我不知道说得够不够清楚。
❽ c语言问题 百元买百鸡问题
#include <stdio.h>
void main()
{
int mj,gj,xj,n=0;
printf(" 百元买百鸡问题求解方案专\n") ;
printf(" ----------------------\n") ;
printf("\t母鸡\t公鸡属\t小鸡\n") ;
for(mj=0;mj<=100;mj++)
for(gj=0;gj<=100;gj++)
{
xj=100-mj-gj;
if(xj*0.5+mj*3+gj*2==100)//1
{
n++;///2
printf("方案%d:\t%d\t%d\t%d\n",n,mj,gj,xj);
}
}
}
❾ C语言买鸡问题
scanf("%d %d\n",&a,&b); 改成 scanf("%d %d",&a,&b); 就不需要多输那个0了
❿ 第二题,买小鸡问题,c语言如何编程
公鸡母鸡小鸡三重for循环即可。
代码:
#include<stdio.h>
intmain()
{
intcock,hen,chick;
for(cock=1;cock*5<100;cock++)
{
for(hen=1;hen*3<100;hen++)
{
for(chick=1;chick<100;chick++)
{
if(cock*5+hen*3+chick==100)
{
printf("公鸡%d只,专母鸡%d只,小鸡属%d只。 ",cock,hen,chick);
}
}
}
}
return0;
}