c语言程序设计答案 100元买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,该怎么买???
作者&投稿:绪话 (若有异议请与网页底部的电邮联系)
#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;
}
}
运用算法
资柯康瑞: #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...