c语言程序设计答案 100元买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,该怎么买???

作者&投稿:绪话 (若有异议请与网页底部的电邮联系)
编程题....(公鸡5元,母鸡3元,小鸡3只1元用一百元买一百只)怎么编啊!~

#include
main()
{int a,b,c;
for(a=1;a<20;a++)
for(b=1;b<33;b++)
{c=100-5*a-3*b;
if(c>=1&&3*c+a+b==100)
printf("%d
%d
%d


",a,b,3*c);
}
}
这是c语言的你试一试看

答案有三组:4,18,78
8,11,81;
12,4,84。

#include int main(){int gj, mj, xj;//公鸡,母鸡,小鸡for (gj = 1; gj <= 20; gj++) //公鸡5块钱一只,100块最多买20只for (mj = 1; mj <= 33; mj++) //同理for (xj = 1; xj <= 300; xj += 3) //一块钱3只,每次增量为3if ((gj + mj + xj == 100) && (gj * 5 + mj * 3 + xj / 3 <= 100)) //总量为100只鸡,且价格要在100块以内printf ("公鸡 %d 只,母鸡 %d 只,小鸡 %d 只
", gj, mj, xj);return 0;}

写个三重循环来寻找购买方案。

#include <stdio.h>

int main(void) {

int i,j,k,count=0;

for (i=1;i<=100/5;i++) /*公鸡*/
for (j=1;j<=100/3;j++) /*母鸡*/
for (k=1;k<=100*3;k++) /*小鸡*/
if (i*5+j*3+k==100 && i+j+k*3==100) {
count ++;
printf ("方案%d:%d只公鸡,%d只母鸡,%d只小鸡。
",count,i,j,k*3);
printf ("100只鸡 = %d + %d + %d
",i,j,k*3);
printf ("100元钱 = %d×5 + %d×3 + %d/3 = %d + %d + %d
",i,j,k*3,i*5,j*3,k);
printf ("
"); 
}
}

运行结果



使用穷举法。

C语言程序:

#include <stdio.h>

void main() {
int a, b, c;

printf("%6s%6s%6s
", "公鸡", "母鸡", "小鸡");
for(a=0; a<=20; a++)
for(b=0; b<=33; b++)
for(c=0; c<=300; c+=3)
if(a+b+c==100 && 5*a+3*b+c/3==100)
printf("%6d%6d%6d
", a, b, c);
}


运行结果:



说我的想法,代码自己写……
1、简单粗爆的,直接3个FOR循环,变量(如a,b,c)代表三种鸡各自的数量,然后再判断结果(?5a+3b+c/3=100,如果是就打印出来。这样的话至少要循环1百万次。
2、也可以加点简单的判断,在循环之前,找出变量的范围。
5元一只的,只要大于20,3元的大于33只就没有意义了,而小鸡的数量,则必需为3的倍数
也就是相对减少了循环的次数。
3、或者,用两个FOR 循环,因为确定了两种鸡的数量,第三种也就确定了,这个时候再判断 是不是100元。再加上第二点减少了变量的范围,效率是更高一点。

#include "iostream.h"
void main()
{
int chicken,hen,cock;
cout<<"chicken,hen,cock number= ";
cout<<endl;
for(chicken=0;chicken<=99;chicken+=3)
for(hen=0;hen<=33;hen++)
for(cock=0;cock<=20;cock++)
if(chicken/3+3*hen+5*cock==100)
if(chicken+hen+cock==100)
{
cout<<" chicken="<<chicken<<" hen="<<hen<<" cock="<<cock;
cout<<endl;
}

}

运用算法





麒麟区17824261259: C语言,程序设计.用一百元人民币兑换成1元、5元和10元币,共有多少种不同的兑换方法.才用循环来做. -
资柯康瑞: #include "stdio.h" #include "math.h" main() { printf("共有%d种不同的兑换方案",fun (int n)) } fun(int m){ int i;for(i=0;i<=10;i++){int j;for(j=0;j<=20;j++){int k;for(k=0;k<=100;k++){if(10i+5j+k==100) m+=1}}if(i==10) return m}}

麒麟区17824261259: C语言设计 已知公鸡每只5元、母鸡每只3元、小鸡1元3只.求出用100元买100只鸡的解,共有多少解,那些解.c语言程序设计 -
资柯康瑞:[答案] 我会C++,但是C++的语法还是和C很相似的,你只要稍加改动即可. #include void main() { for(int x=0;x

麒麟区17824261259: 百钱买百鸡的C语言编程 -
资柯康瑞: for(g=1;g

麒麟区17824261259: C语言编程题目解答下
资柯康瑞: 3-6. [解法1]引进变量 i:表示公鸡数 j:表示母鸡数 k:表示小鸡数 如果让i,j,k取遍1,2,……,100,判别表达式i*5+j*3+k/3=100是否成立,就会有如下的三重循环程序: Program ex5_11(output); Var i, j, k:integer; Begin Writeln ('I':5, 'j':5, 'k':5); For i:=1 ...

麒麟区17824261259: c语言程序设计:任意位数人民币的拆分? -
资柯康瑞: 人民币共有100元,50元,10元,5元,2元,1元,5角,2角,1角 我们分别把它们的个数记为a,b,c,d,e,f,g,h,i.接着获得一个待计算的币值.思路是通过除以100,50...获得a,b...的值.程序如下:#include int main () { int a,b,c,d,e,f,g,h,i,z; printf("...

麒麟区17824261259: 猜数游戏C语言程序设计 -
资柯康瑞: 这道题不难,只要知道怎样用c语言生成1~100的随机数就很好办了!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45附代码如下! #include<stdio.h> #include <...

麒麟区17824261259: C语言程序设计题,懂的进 -
资柯康瑞: 那我就做 2 4 6 吧2随机产生的数组中最大值为:41,最小值为:10,平均值为:23.650000,个元素之和为:473.Press any key to continue#include#include "time...

麒麟区17824261259: c语言程序设计答案 -
资柯康瑞: #include "stdio.h" void main() { int y,m; int leap; printf("请输入年月:"); scanf("%d %d",&y,&m); if((y%4==0&&y%100!=0)||(y%400==0))//是否是闰年 leap=1; else leap=0; switch(m) { case 1:printf("31天");break; case 2: if(leap == 1) ...

麒麟区17824261259: 用c语言编写函数,函数功能是:使数组右上半三角元素的值乘以m -
资柯康瑞: #include void fun(int a[][100], int n, int m){ int i, j; for(i=0;i<n;++j){ a[i][j...

麒麟区17824261259: 一条简单的c语言编程题. -
资柯康瑞: 对于c编程,首先是算法问题.对于这问题你可以定义买i元公鸡,j元母鸡,z元小鸡.int i,j,z{for(i=0,j=0,z=0;i<100,j<100,z<100,i++,j++,z++)x+y+z=100x/5+y/3+3z=100}ret...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网