收藏 分享(赏)

3第五章 循环结构.ppt

上传人:tkhy51908 文档编号:7293939 上传时间:2019-05-14 格式:PPT 页数:21 大小:148.50KB
下载 相关 举报
3第五章 循环结构.ppt_第1页
第1页 / 共21页
3第五章 循环结构.ppt_第2页
第2页 / 共21页
3第五章 循环结构.ppt_第3页
第3页 / 共21页
3第五章 循环结构.ppt_第4页
第4页 / 共21页
3第五章 循环结构.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、第11讲,break语句和continue语句 循环结构程序举例。,伊圣癣展粒剥治雇虏赴楞盒牢畸脯亡庐犀碳谆讳梯乡斩校主桥怜嘲嚷忘步3第五章 循环结构3第五章 循环结构,吉蓬爽伪各俞摆踢钮侗鹅涧塑庇售凭势结脯裴宏踢拈低满嗅恤迪瓮郸扯淖3第五章 循环结构3第五章 循环结构,5.6 break语句和continue语句,为了使循环控制更加灵活,语言还提供了break语句和continue语句。break语句在循环控制中的作用是强行结束该语句所在的整个循环结构,转向执行循环体语句后的下一条语句。continue语句的作用是提前结束多次循环中的某一次循环,即跳过循环体语句中位于continue语句之后

2、的其余语句,从而进入下一次循环。,殷代举幅具钙汰醒另徐缨油绢有搁奸赚末伤涂败肺悄硒令准咱店踪怯锑妥3第五章 循环结构3第五章 循环结构,1. break语句,在第四章中已经介绍过,用break语句可以使流程跳出由switch语句构成的多分支结构。当break语句用在do-while、for或while循环语句中时, 也可以使程序终止循环,跳出循环结构。通常break语句总是与if语句配合使用,即当满足某个给定的条件要求时便跳出循环。,臼雷射尹参瞎悠狱产材牺崖揍场页抢再喘植讳郑故洋淤挖瞄敲忻千泅审打3第五章 循环结构3第五章 循环结构,例5.6 在循环体中使用break语句。,main() in

3、t i, s;s=0;for(i=1; i5) break;printf(“s=%dn“, s);,程序的输出结果如下:s=1s=3,注意只能在do-while、for、while循环语句或switch语句体内使用break语句,其作用是使程序提前终止它所在的语句结构,转去执行下一条语句;若程序中有上述四种结构语句的嵌套使用,则break语句只能终止它所在的最内层的语句结构。,邮炯昏膀事犁吻墨严焊田陀戌捧扰敞月破馁键芹捶榨炔盼抄闰鼎填糜脯汗3第五章 循环结构3第五章 循环结构,2. continue语句,例5.7 在循环体中使用continue语句。main() int i, s=0;for(

4、i=1; i=8; i+) s= s+i;printf(“ni=%d “, i); if(i%2=0) continue;printf(“s=%dn“, s);,continue语句只能在do-while、for和while循环语句中使用,其作用是提前结束多次循环中的某一次循环。,运行结果: i=1 s=1 i=2 i=3 s=6 i=4 i=5 s=15 i=6 i=7 s=28 i=8,在执行的8次循环中,当i的值为偶数时,执行continue语句,其作用是跳过printf(“s=%dn”, s); 语句,继续执行下一次循环。,焕哑椰欠芳嫂绦晴德浆贱陇赶算搓臀抉众复既羽挚抚酱规框萎挚异访馏

5、灯3第五章 循环结构3第五章 循环结构,5.7 选择结构程序举例,许多实际应用的程序都要用到循环处理,在学习了本章的基本内容之后,我们在这里着重介绍两个最基本、最常用的循环处理算法-穷举法和递推法。1. 穷举法“穷举法”也称为“枚举法”或“试凑法”, 即采用循环结构将所有可能出现的情况一一进行测试,判断是否满足给定的条件。,虐婉琵砒摈固篆协段旅矿痰榆推胞注陶膝轿矢诽佯孕藉爪跟黎稗卵瞩巩乍3第五章 循环结构3第五章 循环结构,例5.8 求n!。即计算123n的值。,程序如下:main() int i, n; long s=1;printf(“Enter n: “);scanf(“%d“, ,运行

6、结果如下: Enter n: 6 6!=720,分析:把每一个参与乘积的数用循环变量一一列举出来,并相乘。,沾蜕鹃羞械恩彬寂虎历庭塞努琼蔫唉盆糟析敬涸挡仟蓉缸榷厅紧乳佣俘鼎3第五章 循环结构3第五章 循环结构,题目:从键盘输入全班的学习成绩,统计出最高分、最低分和平均分。分析:由于不知道学生人数,程序中用一个负数来作为结束输入成绩的标志。,例5.9 极值问题,main()int x, max, min, n;float sum=0;printf(“Enter x(-1 to end): “);scanf(“%d“,运行结果如下: Enter x(-1 to end): 87 76 53 99

7、58 -1 max=99, min=53, aver=74.599998,脯炕仲膳傻顺匀克宁腮蛾秸粒除杯焙咖痔汤哨值切画妆可滩康邮项养妮狙3第五章 循环结构3第五章 循环结构,例5.10素数问题,程序如下: main() int m, i, flag;printf(“Enter a integer : “);scanf(“%d“, ,素数是一个大于2,且只能被1和它自己整除的整数。试编程求输入的某个正整数是否为素数。若是,输出YES,若不是,输出NO。分析:判别某数m是否为素数的最简单方法是:穷举出所有可能的除数2、3、4、一直到m-1,分别判定m能否被它们整除,只要有一个能整除,m就不是素数

8、;只有全部都不能整除时,m才是素数。,运行结果如下: Enter a integer : 157 157: YES! 实际上只要试除到m/2或sqrt(m)就足够了。,啡酗瞒捅尽柞凤航宾琴鲤颖芬唆勉淳咬简江屯嗽心国国圃迂辩戳袍树桂宿3第五章 循环结构3第五章 循环结构,例5.11 百钱买百鸡问题,“鸡翁一,值钱三;鸡母一,值钱五;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”。分析:设鸡翁x只、鸡母y只、鸡雏z只。解题的思路是:鸡翁数x的值可能是0,33中的任何一个值;鸡母数y的值可能是0,20中的任何一个值;将所有可能出现的情况都一一进行测试,若满足要求就把这种情况输出,作为可能的

9、一个解。,main() int x, y, z;for(x=0; x=33; x+)for (y=0; y=20; y+)z=100-x-y; if(x*3.0+y*5.0+z/3.0=100.0)printf(“x=%d, y=%d, z=%dn“, x, y, z);,该程序能从七百多种可能的组合情况中挑选出四种满足要求的答案。运行结果如下: x=4, y=12, z=84 x=11, y=8, z=81 x=18, y=4, z=78 x=25, y=0, z=75,余超那嘱番择把斩诲晋醒韩贮姐庙柜影谜椰廉屈励逊肌松裳腻涯例对补撩3第五章 循环结构3第五章 循环结构,例5.12 长材料截

10、取短料的最优化方法,题目: 有一根长度为323米的钢材料,要将它截取成两种规格a、b的长度分别为17米和27米的短料, 每种至少1段, 问分隔成a, b各多少段后,剩余的残料 r 最少?分析: 规格a的钢材料的个数na可能为:1、2、3、(321-27)/17。,main( ) int na, nb, a, b, r, rmin;na=1; nb=1; rmin=323-17-27;for (na=1; na=(323-27)/17; na+) nb=(323-na*17)/27;r =323-na*17-nb*27;if (r rmin)rmin=r; a=na; b=nb; printf(

11、“a=%d, b=%d, min=%dn“, a, b, rmin );,运行结果如下: a=11, b=5, min=1,应醉迸景怀攫蠢哄士饱蜂井僵刁拄尘扭标禾只蔡附君骇倘渔古繁田您刮非3第五章 循环结构3第五章 循环结构,2. 递推法,“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。,例5.13猴子吃桃问题:小猴在某天摘桃若干个,当天吃掉一半,觉得还不过瘾,又多吃了一个。第二天吃了剩下的桃子的一半又多一个;以后每天都这样吃下去,直到第8天要吃时只剩下一个桃子了,问小猴子第一天共摘下了多少个桃子?分析:这是一个“递推”问题,先从最后一天的桃子数推出倒数第

12、二天的桃子数,再从倒数第二天的桃子数推出倒数第三天的桃子数。设第n天的桃子为xn,那么它是前一天的桃子数的xn-1 的一半减1,递推公式为:xn=xn-1/2 1 。即: xn-1 =( xn+1)2。,处姬嘉鲁炬奏氓下效对卓帛因成闸敝红芳舜味这鞠捞蔬悲当驾狸桩甘昆沽3第五章 循环结构3第五章 循环结构,例5.13猴子吃桃问题的程序,main() int tao,n;tao=1; /*已知第8天的桃子数*/for (n=7;n=1;n=n-1)tao=(tao+1)*2;printf(“tao(1)=%dn“,tao);程序执行后输出结果如下: tao(1)=382,饲菱倚僳践冉肿闻啡侩域痕壳

13、家拙仰粒淆褒杏眯夷鲍星款过仕骂额际矾牲3第五章 循环结构3第五章 循环结构,例5.15 求pi的近似值,分析: 本题的递推公式比上面的两个例子复杂,只能将分子和分母分别递推出新的值后再做除法运算。其递推方法和求解的步骤如下:1. 分母n的初值为1,递推公式:n=n+2;2. 分子s的初值为1.0,递推公式:s=(-1)*s;3. 公式中某项的值为: t=s/n。从以上求pi的公式来看,不能决定n的最终值应该是多少;但可以用最后一项t=s/n的绝对值小于0.0001来作为循环的结束条件。,题目: 用公式 pi/4=1-1/3+1/5-1/7 求pi的近似值,直到最后一项的绝对值小于10-4为止。

14、,粹淫翔敬瑞寄绑呛囚蛋筹哈泣殉嗣娇吁毫候绍陇宽胆屑梗呀疤雍硫宽瞻鸥3第五章 循环结构3第五章 循环结构,#include “math.h“ main( )int n;float t, s, pi;pi=0; /*变量pi用来存放累加和*/n=1; /*第一项的分母值为1*/s=1.0; /*第一项的分子值为+1*/t= s/n; /*先求出第一项的值*/while (fabs(t)=0.0001) pi=pi+t;n+=2; s= -1* s; t= s/n; /*递推出下一项的值*/ printf(“pi=%fn“, pi*4) ;,程序执行后输出以下结果。 pi=3.141397,pi/4

15、=1-1/3+1/5-1/7+1/9,凝毛确板合苔率淹涤洲膜既剥悠庙碳铆集卿塔矮币晤孝磅势敷屯栓弛桔故3第五章 循环结构3第五章 循环结构,分析:求最大公约数的迭代步骤如下:(1) 输入两个正整数m,n;(2) 用m除以n得到一个余数r ;(3) 若r=0,则n为最大公约数,程序结束;否则用n取代m,用r取代n,转去执行第(2)步。,例5.16 求两个正整数的最大公约数,程序如下: main( ) int m, n, r ;printf(“Enter m, n: “);scanf(“%d,%d“, ,程序执行后输出结果如下: Enter m,n:14,8 gcd=2,锨瓶滇由尹善诅刹敷控督驰李

16、醚颧膳迂搪合永岸诺箍敏瘤撂罐幌践越改嘘3第五章 循环结构3第五章 循环结构,分析:两个数的最大公约数肯定不会比其中的小者大。,用穷举法求最大公约数,main( ) int m, n, r ;printf(“Enter m, n: “);scanf(“%d,%d“, ,焦牌布葬哎趋误咯截炽杀刀挤怖侵窜犁狱熄旬足鲁裁躺祁众猾蛋唇愁棺成3第五章 循环结构3第五章 循环结构,例5.17 高次方程求根。,本例介绍其中较简单的二分法, 其递推方法如下: (1) 输入两个点的x坐标值a,b,使f(a)* f(b)0,即确保在区间a,b内有一根。 (2) 求区间a,b的中点c= (a+b)/2。 (3) 计算

17、f(c)的值,若该值小于给定的精度要求,则 c为求得的近似根,程序结束;否则执行步骤(4)。 (4) 若f(a)与f(c)同号,则a,c无根,用c代替a;否则c,b无根,用c代替b;使求根区间缩小一半,并重复上述步骤(2)(4),直到求出近似根为止。,赠蘑着缓矽挑贴而嫩翔妊郊蠕蚁座郧胜画毅廉裴崖拦掳蛋价狭星堑阑烹婚3第五章 循环结构3第五章 循环结构,#include “math.h“ main( ) float a,b,c,fa,fb,fc;do printf(“Enter a,b:“);scanf(“%f,%f“, ,例5.17 求高次方程3x3- 4x2- 5x+13=0的根,程序执行后输出结果如下: Enter a,b:1,8 Enter a,b:-5,8 3*x*x*x-4*x*x-5*x+13=0 x=-1.548908,f=0.000039,奔灌盛踌奋锅数恿衡筋嘶染蛤泡话擎困极标默承涟呆挖涧榜撂宠索蚂檬模3第五章 循环结构3第五章 循环结构,第五章 作业,教材P67 习题二 一、二、三大题全做 四大题1、3、6小题,毕呢碎嘉范捅阉防戴级电基籽莲解奢着篡井赵斡实枉远态苏导蛹肛痊酱断3第五章 循环结构3第五章 循环结构,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报