配色: 字号:
4-5 凑硬币问题(循环嵌套)
2022-11-17 | 阅:  转:  |  分享 
  
C语言程序设计任务5 凑硬币问题主讲:朱清妍目 录CONTENTS目 录CONTENTS任务描述C语言程序设计本次任务是凑硬币问题,即输入
10元以下的金额,需要你使用1角、2角和5角三种硬币(三种硬币都需要用到)凑出给定金额钱。请编写程序实现:(1)将所有可能的情况全
部列出来。(2)只需要凑出一种情况即可。运行结果目 录CONTENTS循环嵌套C语言程序设计一个循环结构的循环体内又包含另一个完整
的循环结构。while、do…while、for三种循环语句可以相互嵌套,自由组合。外层循环内层循环 执行一次 执行一遍优点可以解
决一些需要重复操作的实际问题缺点大大降低程序的执行效率目 录CONTENTS精典案例C语言程序设计【例4-10】编写程序,在屏幕上
输出阶梯形式的乘法口诀。流程图分析:乘法口诀可以用9行9列来表示,其中第i行有i列,利用循环嵌套实现得到如下结果:精典案例C语言程
序设计流程图#include int main(){ int i,j; for(i=1;i<=9;i
++) { for(j=1;j<=i;j++) { printf("%d%d=%d\t",j,i,ij); } pri
ntf("\n"); } return 0;}程序目 录CONTENTS枚举法C语言程序设计枚举法是程序设计中最常用的
方法。在有限数据组成的集合中,有些数据满足特定的条件。通过循环一一列举出集合状态,在循环的过程中对所有数据进行测试,满足条件的即输
出结果。适应范围目 录CONTENTS精典案例C语言程序设计【例4-11】百鸡百钱问题一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一
钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?流程图通过分析可知:(1)0<=cock<=20(2)0<=hen<=33(
3)0<=chicken<=100(4)cock+hen+chicken=100(5)5cock+3hen+chicken/3
=100精典案例C语言程序设计流程图#include int main(){ int cock,hen,c
hicken; for(cock=0;cock<=20;cock++) { for(hen=0;hen<
=33;hen++) { for(chicken=0;chicken<=100;chicken++) {
if((5cock+3hen+chicken/3.0==100) &&(cock+hen+chicken==10
0)) printf("cock=%2d,hen=%2d,chicken=%2d
\n", cock,hen,chicken); } } } retur
n 0;}程序精典案例C语言程序设计优化流程图#include int main(){ int cock,
hen,chicken; for(cock=0;cock<=20;cock++) { for(hen=0
;hen<=33;hen++) { chicken=100-cock-hen; if((5cock+3hen+c
hicken/3.0==100)) printf("cock=%2d,hen=%2d,chicken=%2d\n",
cock,hen,chicken); } } re
turn 0;}优化程序目 录CONTENTS接力break语句C语言程序设计break语句用于终止当前那一层循环,当在循环嵌套语
句中需要跳出所有循环时,适合用接力break语句一层一层循环跳出。goto语句C语言程序设计goto 语句标号;一般形式有效的标
识符说明1、语句标号:执行goto语句后,程序将跳转到该标号处并执行其后的语句2、标号必须与goto语句同处于一个函数中3、got
o语句通常与if条件语句连用4、通常不主张使用goto语句,跳出循环嵌套时可用无条件转移语句目 录CONTENTS任务描述C语言程
序设计本次任务是凑硬币问题,即输入10元以下的金额,需要你使用1角、2角和5角三种硬币(三种硬币都需要用到)凑出给定金额钱。请编写
程序实现:(1)将所有可能的情况全部列出来。(2)只需要凑出一种情况即可。任务实施流程(1)分析解决该任务的步骤、方法(2)把解决
该任务的步骤(算法)用流程图进行描述(4)测试执行程序C语言程序设计(3)根据流程图编写程序分析任务C语言程序设计本次任务是凑硬币
问题,即输入10元以下的金额,需要你使用1角、2角和5角三种硬币(三种硬币都需要用到)凑出给定金额钱。请编写程序实现:(1)将所有
可能的情况全部列出来。(2)只需要凑出一种情况即可。x:输入的10元以下的金额one:1角硬币的个数two:2角硬币的个数five
:5角硬币的个数1<=one 10实施步骤1第一步,定义4个整型变量:one、two、five、x;第二步,输入一个小于10的整数保存到变量x中;第五步,确定
5角硬币的个数范围,five=1,five 数范围,two=1,two 金额,即:one+two2+five5==x10,为真,输出one、two、five,再执行第七步,为假,也执行第七步;第七
步,改变5角硬币的个数,再转去执行第五步中的five与终值的比较及后面的步骤;第八步,当5角硬币所有的个数都列举后,改变2角硬币的
个数,再转去执行第四步中的two与终值的比较及后面的步骤;第三步,确定1角硬币的个数范围,one=1,one 四步,为假执行第十 步;开始one=1one ive=1输入x的值two 10Ttwo++Ffive++第九步,当2角硬币所有的个数都列举后,改变1角硬币的个数,再转去执行第三步中的one与终值的比较及
后面的步骤;第十步,当1角硬币所有的个数都列举完后,即one stdio.h>int main(){ int one,two,five,x; scanf("%d",&x); for(on
e=1;one for(five=1;five ne+two2+five5==x10) printf("可以用%d个1角加%d个2角加%d个5角
=%d元\n", one,two,five,x); } } }
return 0;}程序流程图测试程序C语言程序设计运行结果分析任务C语言程序设计本次任务是凑硬币问题,即输入10元以下的金
额,需要你使用1角、2角和5角三种硬币(三种硬币都需要用到)凑出给定金额钱。请编写程序实现:(1)将所有可能的情况全部列出来。(2
)只需要凑出一种情况即可。x:输入的10元以下的金额one:1角硬币的个数two:2角硬币的个数five:5角硬币的个数1<=on
e oto语句实施步骤2C语言程序设计流程图开始one=1one ,five,xfive=1输入x的值two ive5==x10Tfive++Ftwo++第一步,定义4个整型变量:one、two、five、x;第二步,输入一个小于10的
整数保存到变量x中;第五步,确定5角硬币的个数范围,five=1,five ,确定2角硬币的个数范围,two=1,two 否等于输入的金额,即:one+two2+five5==x10,为真,输出one、two、five,再执行第十步,为假,执行第
七步;第七步,改变5角硬币的个数,再转去执行第五步中的five与终值的比较及后面的步骤;第八步,当5角硬币所有的个数都列举后,改变
2角硬币的个数,再转去执行第四步中的two与终值的比较及后面的步骤;第三步,确定1角硬币的个数范围,one=1,one 真去执行第四步,为假执行第十 步;第九步,当2角硬币所有的个数都列举后,改变1角硬币的个数,再转去执行第三步中的one与终值的比较
及后面的步骤;第十步,当1角硬币所有的个数都列举完后,即one<=x10不成立了,就结束。编写程序C语言程序设计#include
int main(){ int one,two,five,x,exit=0; scanf("%d",&x)
; for(one=1;one { for(five=1;five if(one+two2+five5==x10) { prin
tf("可以用%d个1角加%d个2角加%d个5角=%d元\n", one
,two,five,x); exit=1; break; } }
if(exit==1) break; } if(exit==1) break;
} return 0;}使用接力break的程序流程图编写程序C语言程序设计#include int
main(){ int one,two,five,x; scanf("%d",&x); for(one=1;one 0;one++) { for(two=1;two five=1;five
献花(0)
+1
(本文系籽油荃面原创)