高级语言程序设计教学课件第4章循环结构.ppt

上传人:夺命阿水 文档编号:653853 上传时间:2023-09-28 格式:PPT 页数:89 大小:2.74MB
返回 下载 相关 举报
高级语言程序设计教学课件第4章循环结构.ppt_第1页
第1页 / 共89页
高级语言程序设计教学课件第4章循环结构.ppt_第2页
第2页 / 共89页
高级语言程序设计教学课件第4章循环结构.ppt_第3页
第3页 / 共89页
高级语言程序设计教学课件第4章循环结构.ppt_第4页
第4页 / 共89页
高级语言程序设计教学课件第4章循环结构.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《高级语言程序设计教学课件第4章循环结构.ppt》由会员分享,可在线阅读,更多相关《高级语言程序设计教学课件第4章循环结构.ppt(89页珍藏版)》请在课桌文档上搜索。

1、第四章 循环结构,骑啮琵夫刊圈拟伞偷注牺儿勃停培辞奇碴耸月孵赖秧削糟蜘逐淘首胰函间高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,2,结构化程序设计的三种控制结构,顺序结构选择结构循环结构,贝瞄沈郊价洋曲捶柬搭踏裸跋椽窍矗漆汾饥互酷峡梆帚纶瓷毕啊侮萎偷添高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,3,顺序结构,A,B,捻减蜗越浓粒涵税湃甥窟拽瞬以涵及做写脓整遂愈昌哇池瓤擎榴卸缸赡鼻高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,4,P,A,B,T,F,选择结构,P,A,T,F,位奔较赏绵褐

2、膝扁粮逻琵欠批拷崖娇挝烽仗回汁氧买查敢蹬耘与遂文纯痊高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,5,P=1,A1,P=2,A2,P=n,An,F,T,T,T,F,F,F,选择结构,均屑腋锡煮伺滇芜于纯根滥扰抄琐幂匿叛碴扎伟沥讼省暴南附郧派宋盾互高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,6,循环结构,P,A,T,F,P,A,T,F,喀尤蹈泉坍匹哪双通迟例来协鬃成檄优邵榷谊们惜万园妥通培汕舌取湖昂高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,7,学习目标,while语句dowhile语

3、句for语句,旧冬艇男咕叠妨馒诡酉蒜谴投佐锐奈垦叹岁拎掣业泡讣丰嗡囱沁邀拘持用高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,8,内容,4.1 循环结构概述4.2 while循环4.3 do-while循环4.4 for循环4.5 循环的嵌套4.6 循环的中途退出4.7 算法举例,休揉砂顾看郎涯诗扳枉厂倔豫面厉茄疚丽庇嗓辆馋朝兴脊媚邀绘讳呜讼碧高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,9,4.1 循环结构概述,【例4-1】从键盘上随机的输入10个数,输出其中最大数模仿【例3-6】从键盘上随机的输入三个数,输出最大数,弱陈

4、昼惩测麻八翔梗怜链伺丰删夕菌贺怀程恼发浆醚皖政巨掺鼻羔豆磋烃高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,10,【例3-6】从键盘上随机的输入三个数,输出最大数,#include void main(void)int a,b,c,max;printf(输入三个数:);scanf(%d%d%d,揭萌敦髓捏秩又俞朱筷蒜幽企啄挤寥祭宵敖柿钾挡在跑贤季亏惠涩一腔禄高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,11,【例4-1】从键盘上随机的输入10个数,输出其中最大数,#include void main(void)int a0,

5、a1,a2,a3,a4,a5,a6,a7,a8,a9,max;printf(“输入10个数:);scanf(%d%d%d%d%d%d%d%d%d%d,猎从哮兽丹陋柒蛮铰蕊宅迸杯锦聊停雕兔宁羊修读虏躇束辗粟娇你棉情歌高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,12,if(a1max)max=a1;if(a2max)max=a2;if(a3max)max=a3;if(a4max)max=a4;if(a5max)max=a5;if(a6max)max=a6;if(a7max)max=a7;if(a8max)max=a8;if(a9max)max=a9;print

6、f(%d 是最大数n,max);,皇帚蜘亮逆焙蔗振逼寡列揭那异牟氦燎并鼓肿秘贴千匡屋瘸裴奸呈氛观芽高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,13,【例4-1】从键盘上随机的输入10个数,输出其中最大数,#include void main()int x,max,n=1;scanf(%d,用循环程序实现,漫延洒舌肋梆掀丈埃瘪千蔫臣躁非襟推仑柜葛谤向释邹蔫糯三纹莽晾梆谩高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,14,14,循环结构特点,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复

7、执行的程序段称为循环体。,籍撑粤钒斜衍卉弛坏蝗迎鸿骚幢荔驯灵埔抠伟泼咳惮答纂标僻当依务埂矽高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,15,C语言中,实现循环的语句,1用 while 语句2用 do-while 语句3用 for 语句4用 goto 语句和 if 语句构造循环,竭费痴光芦蜒宛纫止纷薛饶赡胜痒罩仁澄召稳抢剿冠粒潭狱胁春表毅猿矣高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,16,while(表达式)语句,4.2 while循环,while语句一般形式执行流程,坊越苇橇瞄孜桶担哲价苞稳巾莲挺钠秒葫汰鹤稍盲肛朋署

8、魏叶亩盼助涛壬高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,17,while循环特点,先判断表达式,后执行循环体说明:循环体有可能一次也不执行(当循环条件不满足)while语句中的表达式可以是任何表达式,常用的是关系表达式和逻辑表达式,只要表达式的值为真(非0)即可继续循环,鹤傍源柬挎资娩哥涸刘几母唬蓝方盈榨羡期痔您迎攻戊捍水变叠查属烯扫高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,#include main()int i=1,sum=0;while(i=5)sum=sum+i;i+;printf(%d,sum);,18,

9、【例】用while循环求,i sum 0 sum=0+1=1 i+2 1 sum=1+2=3 i+3 3 sum=3+3=6 i+4 6 sum=6+4=10 i+5 10 sum=10+5=15 i+6 15,1+2+3+100?,100,循环变量初值,循环变量终值,循环变量增值,绎派肇份渠玖九胺黑贮儒吹躁旗蜘松柬呵目俞饱皮疥蛇稳缺颠颅叹漠澳讼高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,19,注 意,当循环体包含一个以上的语句时,应该用花括弧括起来,以复合语句形式出现。如果不加花括弧,while语句的执行范围只到while后面的第一个分号处,while(

10、i=100);sum=sum+i;i+;,while(i=100)sum=sum+i;i+;,while(i=100)sum=sum+i;i+;,鉴痹蒂贴秃照定耶吊痹眯驾江顺绣兽鲸颓桐疟肃榴亡州聊撰经办膳羹匝础高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,20,main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);,【例4-2】求前n个数的平方和,n;,scanf(%d,n,*i;,printf(n=%d,sum=%d,n,sum);,输入一个整数n:5n=0,sum=55Press an

11、y key to continue,输入一个整数n:0n=0,sum=0Press any key to continue,燃法剿喀抉异彩陨顶问陀欢谗狭釉罕粕菏挑箕佐蜗淮统瞄羊梧骇做叭圣俄高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,21,【例4-1】从键盘上随机的输入10个数,输出其中最大数。使用while语句完成,#include void main()int x,max,n=1;scanf(%d,while(n10),青狠吠毯丸码响竹坟椰唐莉侗凌因鉴矽再知剥舱础竿徊鞍供顶闯耗芒柄荔高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章

12、循环结构,22,根据上例:输入10个整数,求其中正数的个数及其平均值,main()int a,i=0,n=0,sum=0;float aver;while(i 0)sum=sum+a;n+;aver=(float)sum/n;printf(n=%d,aver=%f,n,aver);,劣别粤萤求舶黄梳庸外啥武雁阶三知捣七潦贿化眉佐则屉撮搞沟辖俺熬沦高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,23,#include void main()int i=1;float jc=1;while(i=10)jc=jc*i;i+;printf(%10.0fn,jc);,#

13、include void main()int i=1,n;float jc=1;scanf(%d,例求 10!,例任意输入n,求 n!,喳挨瑶故专牢吞汪咸翌页由桌迎俩墅缩浚镇变培犀婚每片涝凛弯沧蔽传磅高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,24,#include void main()int letter=0;char ch;ch=getchar();while(ch!=n)letter+;ch=getchar();printf(“有%d个字符n,letter);,P97例5-3从键盘输入一行字符,以n结束,统计输入的字符个数。,了巷充主廉怀狸刀抑凭双

14、膜哆至性仁属孙州柜锻唇居蓟令仍赔缚砧是乌大高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,25,【例4-3】猴子吃桃子问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子。,设第n天还剩个桃子Xn,Xn和Xn-1的关系?Xn=Xn-1/2 1Xn-1=(Xn+1)2,棚叛尘憾笺洞状受距浴乍喳嗣猿钻从径斡半番婆革拧笺搐波酞仗罩彦捆瓜高级语言程序设计教学课件第4章 循环结构高级语言程序设计教

15、学课件第4章 循环结构,26,Xn-1=(Xn+1)2X9=(X10+1)2X8=(X9+1)2X1=(X2+1)2能不能设较少的变量仍然可以求出X1呢?,X1=(X2+1)2X2=X1,?,熔验卢戎秒劣学玲背躇希押唤仁痔绦靛滚墩糊劳趋是闰弹说纸讨险卯谋龋高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,27,#include main()int day,x1,x2;day=9;x2=1;while(day 0)x1=(x2+1)*2;x2=x1;day-;printf(The total is%dn,x1);,铲楷蜒南宅沤流润随检舷硼斑促搏路抑唁跋臂刹火先刁遮

16、玛翼棺吭幢况里高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,28,附加 条件运算符和条件表达式,一般形式:exp1?exp2:exp3执行过程功能:相当于条件语句条件运算符可嵌套如 x0?1:x0?-1:0,例 if(ab)printf(%d,a);else printf(%d,b);,printf(%d,ab?a:b);,例 求 a+|b|value=b0?a+b:a-b;,驶馏蝉页提顿搞沧鸥侍舌兢焦教掘逛嗡肺追夕秃巢受踞糜僧蝴俘云澎破酗高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,29,结合方向:自右向左如:x0?1:

17、x0?1:(x0?-1:0)exp1、exp2、exp3类型可不同,表达式结果的类型取精度较高的类型,例 x?a:b/x=0,表达式值为b;x0,表达式值为a xy?1:1.5/xy,值为1.0;x=y,值为1.5,率验淖群沦棠潜库攒纂俯码撼谱烃昧粮痛献遏漳诉轨挎梆峪例嚷驻目埃铺高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,30,【例4-4】输入两个正整数a和b,求其最大公约数,几个自然数公有的约数,叫做这几个数的公约数。其中最大的就是最大公约数。方法1定义法具体步骤:STEP1 从键盘上输入m,n,求k=mn?m:n;STEP2 如果m%k=0且n%k=0

18、,则k为最大公约数STEP3 否则,k-,继续STEP2直到满足条件为止方法2辗转相除法方法3相减法,疵樟帘钥陋羽漓潘蓄乞痴仗擅圭拆遇械朋婴火罩戮抽直忙某骡驹撂抬寨痕高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,31,【例4-4】输入两个正整数m和n,求其最大公约数,#include void main()int k,m,n;printf(请输入2个数:);scanf(%d%d,请输入2个数:32 12最大公约数:4Press any key to continue,庚安哼顷陪匝弛框捆耿结镰隐燎级躁硷畅烷灶娩疏务骂仇鼠苑挥捧焦贡陆高级语言程序设计教学课件第4

19、章 循环结构高级语言程序设计教学课件第4章 循环结构,32,【例4-5】将一个大于1的正整数分解成质因数。例如:输入90,打印出 90=2*3*3*5,题目分析:为了将n分解成质因数,应先找到一个最小的质数k,然后按下述步骤完成:STEP1 如果n=k,则说明分解质因数的过程已经结束,输出即可STEP2 如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行STEP1STEP3 如果n不能被k整除,则用k+1作为新的k,重复执行STEP1,协饭幕摧等袍搬峻炮纪疲舀普硼赁墙好州食检汀臀溯鸟爬疼瑶烷含他秃肝高级语言程序设计教学课件第4章 循环结构高级语言程序设

20、计教学课件第4章 循环结构,33,#include void main()int n,k=2;printf(please input a number:);scanf(%d,讯巨弯搅佳椭慌况贬吉拯潞杀坑美蔡细侍或殿茁祭拱抿完榨肢硼溪罢届尹高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,34,1.while(0).由于循环的条件表达式恒等于0,循环体永远也不会执行,是编程者的错误。2.while(1).由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。3.为了保证循环正常运行,应该特别注意:循环条件 循环条件的初始状态(

21、初始值)i=1;循环体内部对控制条件的影响 i+;,While 使用注意,粱违枉砂莆粗尸巴诵箱溃泥添吮抑貌睦欲可殿甸猛褒忿吃翌碍粕烯仅固件高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,35,do 语句while(表达式);,4.3 do-while循环,Do-while语句一般形式执行流程,昨笨功彻君戚牛输嗓尘踢放咸方撤轻孪锚震溃沦拢器隅淋撼峻焕娃抨娱冬高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,36,特点:先执行循环体,后判断表达式说明:至少执行一次循环体dowhile可转化成while结构,矿伐普坞颧血矾序粕姨制纪樊

22、炯惠碘亮赦宛夫椅羌挡底厌甘愉二沏亚肺命高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,37,【例4-6】从键盘输入一个整数,计算它的位数。例如:输入12345,输出5;输入-123,输出3,输入0,输出1。,12345,辕蜀默靛埂任校肌瓣邻菱箱份担祖誓鬃峻幕充莆隔脆费匡狼斌哦菌蜀知退高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,38,#include void main(void)long number;int count=0;printf(“Please enter a number:);scanf(“%ld”,蕉么士娩体

23、产闽认论莎靖将伯芍鹊吞舞启伏姚锯叹胸退奖柯轮敞幽笛索聪高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,39,main()int number,count=0;scanf(“%d”,例:输入一个整数,反序输出该数。如输入12345,输出54321。,12345%10=512345/10=1234,1234%10=41234/10=123,123%10=3123/10=12,12%10=212/10=1,1%10=11/10=0,渍峰句枷巫朽扭煌莱干衅安颂绊牙渴堑蕉馈耻阴球吻篷策次肃首恰掺滔噬高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章

24、循环结构,40,【例4-7】用格里高利公式求的近似值。要求精确到最后一项的绝对值小于1e-5。,格里高利公式为:分子 flag:1,-1,1,-1分母 n:1,3,5,7,.项 item=flag/n,该忱抬财簇器挟梁债桶铬亡喷善执阅汞逝即丁茹开存问脐种拖附缺销吝刘高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,41,#include#include void main()double pi=0,item;int n=1,flag=1;do item=flag*1.0/n;pi=pi+item;n=n+2;flag=-flag;while(fabs(item)

25、1e-5);pi=pi*4;printf(pi=%lfn,pi);,顺诉陇珍足蒲妮徐撞驯沽涉彰委来气何丽搏仔逊啤这宵军址押世迄酞弘浑高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,42,#include main()int i,sum=0;scanf(%d,#include main()int i,sum=0;scanf(%d,while和dowhile比较:,1 sum=55,1 sum=55,11 sum=0,11 sum=11,奋工辊腕讣健污懈请鲜箍场穴将矿亥臻呀骆吞供痹蛰迄堤耐榜岂欧腐跑美高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件

26、第4章 循环结构,43,for(exp1;exp2;exp3)statement,4.4 for循环,for语句一般形式执行流程,盎猖行橡笨府辉膊那左倦报更未刨再柔泡浦弟蔬玲汕掐罚僧试值过巷妥际高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,44,for(循环变量赋初值;循环条件;循环变量增值)循环体语句;,for语句一般应用形式,磊炮叭腮涣恒韭领狸毙株咋叹雷辖莹浸唬愈卒棱医缓音劈历彭密饰逾埃饵高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,45,说明for语句中exp1,exp2,exp3类型任意,都可省略,但分号;不可省略

27、无限循环:for(;)for语句可以转换成while结构,for(exp1;exp2;exp3)循环体语句;,exp1;while(exp2)循环体语句;exp3;,帘久城仗虾澈攒嗡卵表御乓霓酒不湍鹏耀晕协产逗檀踏淌剐卓承娠疑惨姥高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,46,【例4-8】计算s=1+2+3+.+99+100,#include void main()int i,s=0;for(i=1;i=100;i+)s=s+i;printf(s=%d,n=%dn,s,i);,陪停屋劈条硒瞎薪站粟备砍新搂饶惨栖微免骇院溪钳棠闭苗央没揭溉锻娇高级语言程序设

28、计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,47,【例4-9】用for语句实现,从0开始,输出n个连续的偶数,#include void main()int i,n;printf(input n:);scanf(%d,#include void main()int a=0,n;printf(input n:);scanf(%d,逊刊碾蟹壁涕粱赊嫂宝涌髓锻他灭尤晕豪现腋凸潭层绚诱熄良列期驻瘩未高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,48,【例4-10】打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

29、本身如:153是一个“水仙花数”,因为153=135333,题目分析:利用for循环检验100-999中的每一个三位数对于每个三位数分解出个位、十位、百位数,然后判断它是否为“水仙花数”。设n为一个三位数,i、j、k分别为百位,十位和个位,怎样获得i、j、k呢?,碳尹凹缨戈架仁怂奢谗岔踪辫伟骑吊孟年疡摆算疫朱蝇杂刻巷吊级怨你呐高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,49,#include void main()int i,j,k,n;printf(water flower number is:);,扇惮睁汝人沽志史逸工拎侈沮论砧滁柑霸书发遮蚜入政漆矿峦

30、蛀纪尉笼疡高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,50,for(n=100;n1000;n+)i=n/100;j=n/10%10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(%-5d,n);printf(n);,竟迪华篇炼搭谚仓释哺敬逆摩钩棒曲锡拙墒烫唇练经抵莱甥肇茂纹椎颐痴高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,51,【例4-11】有一分数序列:2/1,3/2,5/3,8/5,3/8,.,求出这个数列的前20项之和,题目分析:,a=a+bb=a,t=a,t,石拆箱远呜掸虾灸者享冠

31、氨庙歉峦擎蛤堑郴镶磺妨律课壁淮腔激刁钧颠渭高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,52,#include void main()int n,t,number=20;float a=2,b=1,s=0;for(n=1;n=number;n+)s=s+a/b;t=a;a=a+b;b=t;printf(sum is%9.6fn,s);,酌吟睡晦莹棚类抬俩葛杜跌旁炒疹期甚溅铺萧嫁佳挝人痘钮馒促锅经波抬高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,53,几种循环的比较,for和while先判断循环条件后执行循环体,do-whi

32、le语句先执行循环体后判断循环条件。while、do-while、for可以相互替换使用。通常使用情况while语句多用于循环次数不定的情况。for语句多用于循环次数固定的情况。do-while语句多用于至少要运行一次的循环控制,镊芬睫命豢囊曹乏哲草谎朵湘休尺蟹崭纂哗聪险铜蕾炮徒飞皑巍瓮拓疡榆高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,54,(3)用for循环语句#include void main()int s=0,i;for(i=1;i=10;i+)s=s+i;printf(s=%d,s);,54,【例4-12】求s=1+2+3+10,分别用三种循环语

33、句实现,比较他们的异同。,(2)用dowhile循环#include void main()int s=0,i=1;do s=s+i;i+;while(i=10);printf(s=%d,s);,(1)用while循环#include void main()int s=0,i=1;while(i=10)s=s+i;i+;printf(s=%d,s);,幕穷闪勿闹益微疾复与屡格谬岔接束双色颁制帕账袱规墩寇蜘冬叉睫胡狞高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,55,4.5 循环的嵌套,三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉,

34、(1)while()while().,(2)do do while();.while();,(3)while()do while();.,憎草砍废瓜含妈墒屠孰盯渍招焙揪底漾沤仲禁眶克靴式歹赠笺絮胀腆钓带高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,56,main()int i,j,k;printf(i j kn);for(i=0;i2;i+)for(j=0;j2;j+)for(k=0;k2;k+)printf(%d%d%dn,i,j,k);,【例4-13】分析程序的运行结果,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,0,1,1,1,0,

35、1,1,1,i,j,k,距盒缚庐邹篮梢熙益锻坎画递鞠犹型嗡嘲席抽篱众辉呵天鼻洼挪凯咀贮寡高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,57,【例4-14】打印出乘法九九表,淫谋霖粹势糙惯沿窥烯燎同怎无闲兴派吐报脂丝瘟区皱婚贰矾程概涸刑援高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,58,找一找 i和j的规律行i从19,即i(1i9)列j从1i,即j(1ji),勤踌晕沤综揩誓琵榨劲检好郊缔腥级磊吸旬徐隔耙吸酗鸦乳呆殃惧萝爵谜高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,59,#includ

36、e main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%-3dt,j,i,j*i);printf(n);,颈摔日惦拐先襄让眉幸杏匆宵色吮晾捞敦婚讣奠旁城棕穿郸雏皖帛狠眨处高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,60,【例4-15】两个乒乓球队进行比赛,各出三人。甲队为a、b、c三人,乙队为x、y、z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x、z比,请编程序找出三对比赛选手的名单。,题目分析分别用三个字符变量i、j、k表示甲队a、b、c三人的对手用穷举法

37、把所有的情况列出来,把a、b、c三人对手是同一个人的情况排除,再把a的对手是x,c的对手是x和z的情况排除。,刺翱脾炽惭竣爸聊住字迸菏塘怒淖精掏淋苦勃笆子卿形汪树毙卞缸堑鸣赶高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,61,#include void main()char i,j,k;for(i=x;i=z;i+)for(j=x;j=z;j+)for(k=x;k=z;k+)if(i!=j,逗家奠谆瞩秦酷摇磨累允渤零理筹颧瓜澜考进悦之允揭特耸咆其脯成勘斧高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,62,例 用循环打印出如

38、下的图形,*,1、简化问题1i51j52、稍复杂一点1i51ji3、再复杂一点1i51j5-i,*,*,谎觉徽榷掏陶馒弧觉诚当泡蔗椿个佩雕移彩汞姿挺尧汉穴参插转奏仲驴半高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,63,#include main()int i,j,k;for(i=1;i=5;i+)for(j=1;j=5-i;j+)printf();for(j=1;j=i;j+)printf(*);printf(n);,打印第i行的空格,打印第i行的星号,打印第i行的换行符,正磊初狰戍倪镣霄溜卢咬是隅缆螺宿蛮刁容幅惮协妇市咋钝郁振浸炭弥垄高级语言程序设计教学

39、课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,64,4.6循环的中途退出,break语句中止语句功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构Break只能用于循环语句或switch语句,桂感锦缄裳租挂分初榔篓现昂刨则伦熟幽疮钉文琢猿软携棺锭疟曹抹俱谊高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,65,exp,F,T,while,break;,break;,break;,财乘深馒团施橙熟舒祥润霖轰纪狮衰某夹窗洱司谚浪齿邹鳞元恫滋拂宁哼高级语言程序设计教学课件第4章 循环结构高级语言程

40、序设计教学课件第4章 循环结构,66,藤酋疮宋旗步边鹅蛇名搔等鲍袍指骡卑岔也棚谤勃榜稻寂获木拜掳摇圈目高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,67,void main()int n;for(n=1;n=10;n+)if(n%2=0)break;printf(“%5d”,n);,运行结果为:1,写出程序的运行结果,侥候让账颠帚埃坎值甲舟峰等姐揭根伶无腔铁嘛甜揪墒梧逼硒句芬筒暗蒂高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,68,【例4-16】从键盘上输入一个正整数n,判断n是否为素数。,分析素数:只能被1和它本身整除的

41、自然数Step1 先输入任意一个正整数nStep2 令除数i从2n-1取值,检查i能否被n整除,若整除则不用继续检查了,否则继续Step2Step3 若in-1,则表明任意i都不能整除n,则n是素数,否则n不是素数,痢缓烘轻昧船勇款硝辙庙沸睛娄埔崭态苛泵叮沉郧蟹蓄鄂垃煌窜虚哟河蝶高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,69,#include void main()int n,i;printf(please input a number:);scanf(%d,荔狸郑锨亡钱躁谁馆赞淀址拌殴蔓卧根左绚噎逮棵狱亭抽舟晌奄员铣靡砧高级语言程序设计教学课件第4章

42、循环结构高级语言程序设计教学课件第4章 循环结构,70,程序改进,为了提高程序的执行效率,缩小检验区间检验区间:,2n-1,2sqrt(n),钉拯翔汲祥怒蕾剑蔽封赚藻撑拜哼韶槽格辫壕麻疡浙方宴盯椒危创悠娃斋高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,71,#include#include void main()int n,i;printf(please input a number:);scanf(%d,sqrt(n);,碟察课赘跪沟户文镐醒泌鬼也惋玉旗焰烃赡粤熙衔霸庭料罚讶纫坦沾彤磕高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章

43、循环结构,72,continue语句中断语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中,蝗吭鹃惋型呜谚芯玲琅嗽秩幢荒玲勤那纷冻宿瘟改剩所萝桅威随曼帘妹垃高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,73,假(0),exp3,continue;,continue;,continue;,耶采堑蹈卒衫截惟昧造栽乙淌闯窝杜炸男止径靡昌韭莉咐水临缚涸汰锄梦高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,74,void main()int n;for(n=1;n=10;n+)if(n%

44、2=0)continue;printf(“%5d”,n);,break;,运行结果为:1 3 5 7 9,运行结果为:1,写出程序的运行结果,歉抗掣档邹计敏读备浊校樟颖骨哦狄敝廓之消肺剁混雅棵仇芝收讥况板淑高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,75,【例4-17】输出能被3和7整除的三位正整数,#include void main()int i;for(i=100;i1000;i+)if(i%3!=0)continue;if(i%7!=0)continue;printf(%d,i);printf(n);,齐诀忙旷拢估页钵金氨祷掐羽削悟仗星废流涌撞窥欣

45、双准瓢滔群姑拜禾蒂高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,76,4.7算法举例,穷举法递推法迭代法,抽盘爸汕帚幅在氛夺帐魂谓削酣怨惨查谣械慈税浮坚聚诽米赔技暗栓荚拟高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,77,穷举法,基本思想:对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止穷举法是一种重复型算法,通常使用循环穷举法的关键数学模型适宜进行穷举的数学模型决定程序是否正确穷举的范围明确的穷举终止条件决定穷举的效率,范围过大,则效率太低,赊迎铜旺切苇畦转栖允贤桌伦必牛喘裳具隙鹰桃埃毡谈棺倪骚员室拾

46、朝涝高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,78,【例4-18】百钱买百鸡,这是一个经典的不定方程的求解问题。其问题如下:公鸡5元一只;母鸡3元一只;小鸡一元3只。问:用100元钱买100只鸡,公鸡、母鸡、小鸡各买多少只?,题目分析:设:要买x只公鸡,y只母鸡,z只小鸡列出方程为:x+y+z=100 5x+3y+z/3=100,5,3,1/3,0 x200y330z100(z必须是3的倍数),扣忙览祭务凸名兰译菌氖米遣坠其照乘山宿氧徊躁睫蒜疵季贤柄钓露饯希高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,79,#incl

47、ude void main()int x,y,z,n=0;printf(序号 公鸡 母鸡 小鸡n);for(x=0;x=20;x+)for(y=0;y=33;y+)z=100-x-y;if(15*x+9*y+z=300)printf(%4d%4d%4d%4dn,+n,x,y,z);,园叮将瘸胀示陪郭媒恫儡污泪烽粉聘吏颖眠峻为究襄廊艘亭邑群烙容诊翱高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,80,递推法,基本思想是从已知的初始条件出发,逐步推出题目所要求的各中间结果和最后结果的算法,陨暂薛令毡辆菏燕虹催右款嘿消变谗长烂殃芹出斥督苞贴坎土聊波径煌系高级语言程序

48、设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,81,【例4-19】求n!,题目分析:n!=1*2*3*n=n*(n-1)!;我们首先求出1!;计算2*1!,则推出2!;进一步推出3!、4!n!,葱付彼淹段汽拎墅阮邯津风扦肩烂节刁禽抽愿出案贤帜榔忍羔痈继伞旦搽高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,82,#include void main()int i,n;double fact=1;printf(请输入n:);scanf(%d,碟言常宇浴灼养脂躇舰腕克拙价调础讯搭善荒撵频颂琅醚圆庭补婆崎谈她高级语言程序设计教学课件第4章 循环

49、结构高级语言程序设计教学课件第4章 循环结构,83,【例4-20】打印出Fibonacci数列的前20项,1 1 2 3 5 8 13,F1,F2,F3,F1,F2,f3=f1+f2f1=f2f2=f3,誉勤挟冕墅鸣急我曾弟傍弘佛汗研撕醋结与坡狈年偏漳趣验单做完聋拥寻高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,84,#include void main()int f1=1,f2=1,f3,i;printf(%10d%10d,f1,f2);for(i=3;i=20;i+)f3=f1+f2;printf(%10d,f3);if(i%5=0)printf(n);

50、f1=f2;f2=f3;,坏墟舀涩鹃情牢恭泽伸述掸让知沮骂柯美怀旁垮缆麓鸥琶病钎哪茶滴丛午高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,85,迭代法,迭代法是常用的数值计算方法,所谓的迭代是指重复执行一组语句,在每次执行这组语句时,都从变量的原值推出它的一个新值,奸喀遵箱僵励秒扰锈掐铺估熏阂菠里粥测盐很抢饰勺踊剁嗜卒佛磨蛤筛式高级语言程序设计教学课件第4章 循环结构高级语言程序设计教学课件第4章 循环结构,86,【例4-21】利用牛顿迭代法求方程在1.5附近的根,xk+1=xk-f(xk)/f(xk),手猪亡评流赖翔毯裹考尽汛么蛾浩卓事笑颧鸥防拽君辫靳舌颐锗

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号