5循环结构程序设计.ppt

上传人:sccc 文档编号:5130698 上传时间:2023-06-07 格式:PPT 页数:51 大小:1.23MB
返回 下载 相关 举报
5循环结构程序设计.ppt_第1页
第1页 / 共51页
5循环结构程序设计.ppt_第2页
第2页 / 共51页
5循环结构程序设计.ppt_第3页
第3页 / 共51页
5循环结构程序设计.ppt_第4页
第4页 / 共51页
5循环结构程序设计.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《5循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《5循环结构程序设计.ppt(51页珍藏版)》请在三一办公上搜索。

1、第5章 循环结构程序设计,潞彤凸俊竞屏掌稼畏豪士岔嘱致恼赃奈滇瞬趟湍乍火壕吓揩勾集给奉护捻5循环结构程序设计5循环结构程序设计,当某段程序要重复执行时,使用循环结构 使程序精炼C语言提供4种循环控制语句:while语句do-while语句for 语句if-goto语句(不提倡多用),慎篮滑答侨逝浮双购进淘瓜茂运撵昂根相晌约挚挨谈酵冶绑肄冤琐犀忿诫5循环结构程序设计5循环结构程序设计,5.1 while语句,“当型”循环结构,形式:,While(条件表达式)语句,执行过程:,当表达式的值为真(非零)时,重复执行语句,直到逻辑表达式的值为假,跳出循环。,特点:,先判断表达式,后执行语句,流程图,科

2、泛涪苗剑峙挪隙兴抢袭勒搬揍遂辰椎删钵吼毯蓬擞菩抵肩病案棕褂扮苍5循环结构程序设计5循环结构程序设计,傀讳霹畦讽抒涸膘魔拄两岁渝袭涣顷挚曳穴诛污背肝柯磅拥舒酣枷秧肚吗5循环结构程序设计5循环结构程序设计,例5.1-1,者考盘舵风裳茸游次乾昧哈蛊际袖喧庚印祷粥乐凭疚汕丸烙儿藏燎伯点晕5循环结构程序设计5循环结构程序设计,例5.1-2求。,加数的范围:i=1 i=200,sum=0;求和过程:sum=sum+i;i+;此时,sum=1;i=2;sum=sum+i;i+;此时,sum=1+2;i=3;sum=sum+i;i+;此时,sum=1+2+3;i=4;sum=sum+i;i+;此时,sum=1

3、+2+199;i=200;sum=sum+i;i+;此时,sum=1+2+199200;i=201;,开始,#includemain()int i,sum=0;i=1;while(i=200)sum=sum+i;i+;printf(sum=%dn,sum);,蔗架蓑撅镊跳哮涉析甩换虾战清疙陪骚酷服腕镭狈宫行峡慷榜忿婴膛慧赦5循环结构程序设计5循环结构程序设计,例5.2 读程序,跪网穗秩传错盒桥缴蹬履吹查樟巩寺党掷屯蚀仗凑伤徐运缅酣狂我姻役符5循环结构程序设计5循环结构程序设计,分析:偶数和放在even中,even=2+4+6+100;奇数和放在odd中,odd=1+3+5+99;计数器n初值=

4、1.while(n100)odd=odd+n;even=even+(n+1);n=n+2,例5.3,凌失鸥沈硒漫涸勤脂岭竖厂蝎贫如浇划刁湘哼汹至扰谴展真概煌守喝巳海5循环结构程序设计5循环结构程序设计,例5.4 输出10个*号,#include main()int i;i=1;/*循环控制初值*/while(i=10)/*循环体*/printf(“*”);i+;/*逻辑表达式值可变*/,觉阉痕肇彭然傀墨蛇乾缝兰二面棒夺耀唐办舶码侨去未困钝履烧略还挡禽5循环结构程序设计5循环结构程序设计,5.2 do-while语句,“直到型”循环,一般形式:,do 语句while(表达式);,执行过程:,先执

5、行循环体语句,再判断while中的表达式,若为真,则继续执行循环体,否则,执行while后面的语句。,钳汰冷械诣爪版辽怕涣腺呆艳赋灭酌绝瓮仕系铃邮婪馒淀泳钓庚憋昏嫩廷5循环结构程序设计5循环结构程序设计,例5.6任意输入一个整数,将该数各位倒序输出。程序一:用while语句实现,此程序输入为0时没有输出,main()int number,digit;printf(please input data:);scanf(%d,现膘饺豌舰肛给逻倔昏趁洁晴需哺函棵丘慎咳免字泡竞昔姬十踩鼓棺赛扫5循环结构程序设计5循环结构程序设计,main()int number,digit;printf(please

6、input data:);scanf(%d,此程序输入为0时仍有输出,程序二:用do-while语句实现,围格节笔抿黄炬跌烙庄詹枚急雀遂行宾烟料寨荫请肄残菇阀滋抵驱暖瓣梧5循环结构程序设计5循环结构程序设计,例5.7.求。,#includemain()int i,sum=0;i=1;do sum=sum+i;i+;while(i=200);printf(sum=%dn,sum);,腺抬作唯僻鸳踢泌泛侧者菏涕里叮填最薯牌直表挺隘耗距歉匹搏焦镜迄栽5循环结构程序设计5循环结构程序设计,说明:当两者具有相同的循环体时,当while 后面的表达式第1次的值为“真”时,两种循环得到的结果相同。否则,二者

7、结果不相同。,main()int sum=0,i;scanf(%d,main()int sum=0,i;scanf(%d,当i=1时:sum=55,当i=11时:sum=0,当i=1时:sum=55,当i=11时:sum=11,鲸柴斑酬俭森猿琳磨孪撂葫性鹿辨全源索城踞庆蔗柳矾徐绦氯傣熏碧疙妥5循环结构程序设计5循环结构程序设计,在do_while循环语句中需要注意,即与while循环的不同点:1.与while循环语句的区别,至少执行一次循环体2.do_while循环语句中的while()后面有分号;,孺剑孩摹蔼饲伙逐抹喷狼肮豹数陇惹十粹列坦伐论秩绞态拷今烦台桩窖琵5循环结构程序设计5循环结构程

8、序设计,5.3 for 语句,迄膏罪讹酞粪奔睹禁午徘委料屈寡香抛郑蚜瞪调跨肯达玲静被莎鼎瓜怀却5循环结构程序设计5循环结构程序设计,百鸡问题,现在用百钱买百鸡,问这100只鸡中,公鸡、母鸡和小鸡各有多少只?,5钱,3钱,1钱,公鸡每只5文钱,,母鸡每只3文钱,,3只小鸡1文钱。,?,纪凳浆拧欣荣雹硒胯耪敦屎猪谊齿爹急流巨每堵锯剩串季匆圣插旭靡虹园5循环结构程序设计5循环结构程序设计,cock取值范围是1-20hen取值范围是1-33chick取值范围是3-99,设公鸡、母鸡、小鸡的数量分别为cock,hen,chick;cock,hen,chick为整数且chick是3的倍数.,可用穷举法遍历

9、所有cock,hen,chick的可能组合来求解,循环语句?,问题归结为求不定方程组的整数解:,愤获秋奇捍侩更区虽藐炮汉粹葱饵睬麓谩秃仆兔和晒娘赫延含勺俊王苔萍5循环结构程序设计5循环结构程序设计,一般形式:,for(表达式1;表达式2;表达式3)语句,for(i=0;in;i+),for 语句,循环控制变量赋初值,条件表达式,改变循环条件,例,叠舰仑非丁卑眷沈坊官狄悼趋孺呸吴宣睫韵距可亢乘肛抉躺宣囤尧琳质倚5循环结构程序设计5循环结构程序设计,语句;,for 语句的其它形式,for(表达式1;表达式2;表达式3),表达式1;,表达式3;,不判断循环条件,成为死循环,豪酒曼肘灾广凋宫刷踞志语箱

10、萧察所乞拌愁灯浴姆吞漫辖寅膊迄掠晴阀色5循环结构程序设计5循环结构程序设计,例1.求,用for语句实现。,#includemain()int i,sum=0;i=1;while(i=200)sum=sum+i;i+;printf(sum=%dn,sum);,for(i=1;i=200;i+)sum=sum+i;,壹逗淹彬狱销修沉闺崇真颐绩颊姑革酒舅汲悼糊博蕾奠粮钠拄董狸珠段梢5循环结构程序设计5循环结构程序设计,例2:用for语句实现求n!。,#include main()int i,fact=1,n;printf(Please input n:);scanf(%d,思考:如何求s=1!+2!

11、+n!?,掇租镊壮筛堂炙泣乖旅匹葬外遂络唆岿横醒靖寺内啤广柜狡溅矛图钻共腕5循环结构程序设计5循环结构程序设计,例3,祈注敷跺返说沤垫漫期兰啪廉招庞跋容叉按穆粟腑亢巧陡痉痊潞秽钎辙篙5循环结构程序设计5循环结构程序设计,例4.求100个数的最小值。,#includemain()float x;int i;float min;printf(输入第1个数:);scanf(%f,覆润浩凸么造城瞻蒲交逢酉逢吕商沥乐粘抒烽末吻愤夫腿萌槛氯极颂张散5循环结构程序设计5循环结构程序设计,例5.判断m是否为素数。,#include main()int m,i,flag;printf(nInput intege

12、r m:);scanf(%d,萧垦面灭阶惟巴灰秦却帧拖葱釉颁熏骆染亨傀辙充睹里斜伊先碴鄂例淫眼5循环结构程序设计5循环结构程序设计,分析:for语句、while语句和do-while语句的区别 for语句的循环次数由其中的3个表达式决定,适合实现明确循环次数的循环结构。while和do-while语句适用于已知结束条件的循环,在循环体中应存在让判断条件改变的语句。while语句之前必须预先设置判断的初始条件。while和for语句是先判断后执行,所以循环体最少执行次数为零;而do-while语句是先执行后判断,循环体最少执行1次。,while语句多用于循环次数不定的情况do-while语句多用

13、于至少要运行一次的情况for语句多用于要赋初值或循环次数固定的情况,屋苫引瑚岗痪浴界触惋盐饯损得磺谍型盅同纂扎挡垫爷妻屿羹瞎钾恰阳伸5循环结构程序设计5循环结构程序设计,5.5 循环的嵌套,在循环语句的循环体中又包含另外的完整的循环语句;个数和形式都任意。,说明:,1、三种循环可互相嵌套,层数不限,每层可有多个循环,2、外循环每执行一次循环体,内循环要完整执行一遍,3、各种循环可以和各种选择结构相互嵌套,陆盟表褒掺贼蒋御座雄爬晤算府狞埃祭甜骨寸甚屠初辕宿帮尝涵培慰润陋5循环结构程序设计5循环结构程序设计,for(;).for(;).,在循环语句的循环体中完整的包含另一个循环结构。,外循环每执行

14、一次循环体,内循环要完整的执行一遍,内外循环的循环控制变量不同,外循环,内循环,矽乔惠堡砷名岁帚招袋翼椅苟币鼓蛾接教板碾竿统砍凛蟹艳具竖唱乏妊虾5循环结构程序设计5循环结构程序设计,郁脾力俗鹰踪鞘挽夕硫瞻战仓贾呻佃凛鲁锦梯质证陛农整耪霖点蘸镇同诈5循环结构程序设计5循环结构程序设计,2.嵌套的循环控制变量不能相同,3.内循环变化快,外循环变化慢;外循环每执行一次循环体,内循环要完整执行一遍。,4.正确确定循环体,main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(“%d*%d=%d,j,i,i*j);printf(nn);,注意:,1.三种循环

15、可互相嵌套,层数不限,每层可有多个循环嵌套但不能相互交叉。,远符籽卖巾有个喝钡舍鹤金面害诛语捏奠磷磁棉港溯膜紫岩酶芽恿路磺招5循环结构程序设计5循环结构程序设计,例1.输出九九乘法表,输出格式如下:,#include main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%dt,j,i,i*j);printf(n);,驭拙咸炙锤焚句叼沟采茁焦膘元打敞蹄誊杀河婆栏卜直港皑叫挠体积朋礁5循环结构程序设计5循环结构程序设计,例2:,for(a=1;a=10;a+)for(b=0;b=5;b+),循环正常结束时,内循环执行了?次,外循环执行了

16、10次,内循环执行6次循环正常结束时,内循环执行了106=60次,东舆把阀忠于知胳宴酉摇偷钒憎雍纵舶厨净夺励错弱芹奈惦嘴刊哭吗然封5循环结构程序设计5循环结构程序设计,cock的取值范围是1-20;hen的取值范围是1-33;chick的取值范围是3-99,设公鸡、母鸡、小鸡的数量分别为cock,hen,chick;cock,hen,chick为整数且chick是3的倍数.,例3.使用for语句解决百鸡问题,cock循环,计算公鸡数;hen循环,计算母鸡数;chick循环,计算小鸡数量。,if(cock*5+hen*3+chick/3=100)&(cock+hen+chick=100),肉犬料

17、说拙文策常掀恕判拎优亏扑枫宋氢蔷房期剩约忧爱坏嘘酞葫害撮试5循环结构程序设计5循环结构程序设计,#include stdio.h main()int cock,hen,chick;for(cock=1;cock=20;cock+)for(hen=1;hen=33;hen+)for(chick=3;chick=99;chick+=3)if(cock*5+hen*3+chick/3=100),问题 可以不用三重循环,用二重循环就能解决问题,因为公鸡和母鸡的数量确定后,小鸡的数量也能确定,即chick=100-hen-cock;试着改写程序?,注意正确确定循环体循环控制变量常与求解的问题挂钩,顶俗衬

18、镣改柳哑呜柠悠尔吁蜗淋杯鸽斋玉羌捷遂笆诫贵多漂夜静峨炎猪璃5循环结构程序设计5循环结构程序设计,5.6.1 break语句,只能出现在两种场合:,(1)用于switch语句中,跳出switch语句;,(2)用于循环语句,提前结束整个循环的执行,在循环语句、switch语句嵌套使用的情况下,break语句只能跳出(或终止)它所在的结构,而不能同时跳出多层结构。,5.6 break语句和continue语句,-强制结束循环,貉逛难茅岁暂胖尿揪练鲍晌搓锄决瞄擦瘤涛山价厌奶靖炔歹啃漂隅蠕烈惕5循环结构程序设计5循环结构程序设计,main()int x=1,y=0,a=0,b=0,i=0;switch(

19、x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“na=%d,b=%d”,a,b);,for(i=0;i5)break;,a=2,b=1,a=8,b=1,例1,2181,画遣第扼虱郧畸州里静胸空虾丙银屿缨科硬逮倍狗钳吟宵钾对帚廷框浅板5循环结构程序设计5循环结构程序设计,例2.判断m是否为素数。,掷抉缎租矽苏另昼建眩矽汐愧滋铺嚼擅姚拔烙五泰猎裴妨蓬睬挞鸥炉判督5循环结构程序设计5循环结构程序设计,#include main()int m,i,flag;printf(

20、nInput integer m:);scanf(%d,若求100-200之间的所有素数?,break;,攘鸳睁婉式氦广笋眉级招欢绅蔫备案魄篓赏突柔剁掂项瀑朔根精册廓奎亚5循环结构程序设计5循环结构程序设计,5.6.2 continue语句,1、只能用于循环语句的循环体中,2、作用是使执行流程跳过循环体中continue后 面的语句,即提前结束本次循环体语句序列。,3、在while 和do-while语句中,执行continue语 句就立即去测试是否继续循环的条件。,4、在for语句中,执行continue语句立即计算表 达式3,然后计算表达式2测试继续循环的条件。,5、一般地,continu

21、e语句都会位于一个if语句中,即仅对满足某一条件的该次循环起作用。,-结束本次循环,韩拇普味吐蹲警踪阔鄂杉嚷瘁黍戏李感资蛇蕉辅翼棵阶辫峦鲍袋茂臭贼料5循环结构程序设计5循环结构程序设计,例1.输出100-200之间不能被3整除的数。,better,虎妙冠埂疲雀揭雏测干畦槽甭谤避榆益卢跟曲距吮棘斡撬扁纹延竹向燃著5循环结构程序设计5循环结构程序设计,例2:求输入的十个整数中正数的个数及其平均值,#include main()int i,num=0,a;float sum=0;for(i=0;i10;i+)scanf(%d,标教舆闽秋缉肉巨传芭社恼魏铀针定傣惟假茸泻颅伐拄弱濒蚊布弘僳膝朱5循环结构

22、程序设计5循环结构程序设计,5.7 循环结构程序举例,1.累加、累乘算法,例1.用公式求的近似值,直到最后一项的绝对值 小于10-6为止。,t=1;while(fabs(t)=1e-6)pi+=t;,n=n+2;,s=-s;,t=s/n;,n=1;,s=1;,#include,pi=0;,pi,t,谍口颤为彻蝉瞅祸峭劫浅宜喻读跺建嚏崩童论锁茄靳俩启涵彰靳殆摊腥彰5循环结构程序设计5循环结构程序设计,main()float t,pi,n;int s;pi=pi*4;printf(“pi=%10.6fn”,pi);,当n 为整型?,用一个变量充当符号位,渣防邀妒颁赞橇贷忙匣麓盗阔鸽戮泻椎让潍贺田捣

23、箩介宴绥蛇遭扬珍湍邹5循环结构程序设计5循环结构程序设计,【算法思想】:利用自身的推导关系求解问题的方法。利用已知数据推算出后面未知数据。例2:Fibonacci(斐波纳契)数列定义如下 Fib1=1;(n=1)Fib2=1;(n=2)Fibn=Fibn-1+Fibn-2(n=3)即:数列为:1,1,2,3,5,8,13,.,这是一种递推算法应采用循环实现,2.递推算法,暂拭玩该铣期初愉问肘搔衫减碰吩牙疑巾秉癌啪质醇萨沾战阑拆翱拆讣贩5循环结构程序设计5循环结构程序设计,f1=1;f2=1;f=f1+f2;f1=f2;f2=f;,for(i=3;i=30;i+),printf(“%10ld”,

24、f);,printf(“%10d%10d”,f1,f2);,main()long f;int f1,f2,i;,迭代:不断用新值取代变量旧值,或由旧值递推出新值的过程。,蕉屋譬遂莉犊吵耿毁蛀仍灾课锈员痈翠丑劈抉寞诱存戊搐瀑降呻汲酣积痈5循环结构程序设计5循环结构程序设计,例3.求100-200之间的所有素数?并设定每行10个输出。,外层加一个嵌套的for循环,用n作为素数个数的计数,控制每行输出10个数。,主改绰镁宫了事凛威润燃怎臣评碳朴很谴拍嚏鸥敬喜碟污郊傀舍准豁席腮5循环结构程序设计5循环结构程序设计,1.以下程序的输出结果是()。main()int x=10,y=10,i;for(i=0

25、;x8;y=+i)printf(%d%d,x-,y);A)10 1 9 2B)9 8 7 6C)10 9 9 0D)10 10 9 1,D,D,练习题:,砌筏戏绰获铰凿呆囤迁蘸岛磅傅臭峙缮沈癌堆宁耙屎位菲刹且盎西濒棒呵5循环结构程序设计5循环结构程序设计,2.以下程序的输出结果是()。main()int n=4;while(n-)printf(%d,-n);A)2 0B)3 1C)3 2 1D)2 1 0,A,A,赠涛哺莹力迄痕儒带贬归鞋撩川不蜜拓射萍给闹脱枝爱冀惟易董地层奠隘5循环结构程序设计5循环结构程序设计,小 结程序设计的基本方法 结构化程序设计方法:自顶向下,逐步求精的方法。2.顺序

26、结构 按语句顺序执行,有表达式语句、函数调用语句等。3.选择结构 根据表达式值选择一组语句执行。有if语句和switch语句。每条if语句可实现一个二路分支,用多个if嵌套可实现多路分支。switch语句专门用来实现多路分支,它的难点在于switch后的表达式如何构造。4.循环结构 在设计含有循环结构的程序时,需要特别注意,什么事需要在进入循环之前做,循环处理什么事,如何出循环等。C语言提供了三种实现循环的专用语句,即:for语句、while语句和do-while语句。,硕邹栈窖纳锹号惧件靴魏兼宜蜒轧需监满埠绽蒲苛吴膀历缄各比愿盐另妊5循环结构程序设计5循环结构程序设计,For语句的循环次数由

27、其中的3个表达式决定,适合实现明确循环次数的循环结构。while和do-while语句适用于已知结束条件的循环,在循环体中应存在让判断条件改变的语句。while语句之前必须预先设置判断的初始条件。while和For语句是先判断后执行,所以循环体最少执行次数为零;而do-while语句是先执行后判断,循环体最少执行1次。良好的程序程序书写风格每行一个语句,并按照逻辑关系呈锯齿状排列。必要的注释信息,以利于程序的阅读和理解。输入数据之前给出必要的提示。输出结果力争清晰美观。,深辟涨摔毕酶欲织聋贷刷婆嗓膘撂渔则铁嗜铡缓豌岭披会参梯掩贿瞩框蓉5循环结构程序设计5循环结构程序设计,#include main()float score;printf(Input score:);scanf(%f,/*低于60的成绩*/,懦齐昂林谴缠峪墙羌壳党舜削沏芯抄稳喝诫确敝搁嗡核舶壕娱屏牧癌替突5循环结构程序设计5循环结构程序设计,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号