C语言程序设计--循环例子.ppt

上传人:豆**** 文档编号:60902236 上传时间:2022-11-19 格式:PPT 页数:28 大小:409KB
返回 下载 相关 举报
C语言程序设计--循环例子.ppt_第1页
第1页 / 共28页
C语言程序设计--循环例子.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《C语言程序设计--循环例子.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计--循环例子.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C 语言程序设计基础篇第第 7 章章 简单程序设计之二简单程序设计之二 C语言程序设计基础篇本章内容提要本章内容提要n n多分支选择结构多分支选择结构switch语句语句n n循环嵌套循环嵌套n nbreak语句和语句和continue语句语句 n n程序举例程序举例 2022/11/19C语言程序设计基础篇教学目标n在在三三种种基基本本结结构构的的基基础础上上,结结合合本本章章介介绍绍流流程程控控制制的的其其他他几几个个语语句句:switch语语句句、break语语句句和和continue语语句句及及循循环环的的嵌嵌套套,实实现现复复杂杂的的算算法法,设设计计出出结结构构清清晰晰、功功能能强

2、强大大的的程程序序,对对C语语言言程程序序开开发发设设计计有有比比较较深深刻刻的的认识。认识。2022/11/19C语言程序设计基础篇7.1 多分支选择结构程序设计1、语句形式:、语句形式:switch (表达式)表达式)case 常量常量1:语句语句1;case 常量常量2:语句语句2;case 常量常量3:语句语句3;.case 常量常量n:语句语句n;default:语句语句n+1;根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,又称开关语句又称开关语句又称开关语句又称开关语句

3、。常量表达式的值必须常量表达式的值必须互不相同,否则执行互不相同,否则执行时将出现矛盾,即同时将出现矛盾,即同一个开关值,将对应一个开关值,将对应多种执行方案。多种执行方案。千万不能千万不能接接(;)号号2022/11/19C语言程序设计基础篇2、语句执行流程:、语句执行流程:指语句的最指语句的最后一条是否后一条是否为为break简单语句或简单语句或复合语句复合语句breakbreakbreakbreak有有无breakbreak有无有计算表达式计算表达式常量常量1 1常量常量2 2常量常量n n=语句语句1 1=语句语句2 2语句语句n n其它其它=语句语句n+1n+1无值值casecase

4、语句出语句出现的次序并现的次序并不影响执行不影响执行结果。结果。2022/11/19C语言程序设计基础篇void main()void main()intint n;n;printfprintf(请输入成绩:请输入成绩:请输入成绩:请输入成绩:););scanf(%d,&nscanf(%d,&n););switch(int)(n/10)switch(int)(n/10)case 10:case 10:printfprintf(成绩成绩成绩成绩%d d的等级为优秀的等级为优秀的等级为优秀的等级为优秀 n,n);n,n);case 9:case 9:printfprintf(成绩成绩成绩成绩%d

5、d的等级为优秀的等级为优秀的等级为优秀的等级为优秀 n,n);n,n);case 8:case 8:printfprintf(成绩成绩成绩成绩%d d的等级为良好的等级为良好的等级为良好的等级为良好 n,n);n,n);case 7:case 7:printfprintf(成绩成绩成绩成绩%d d的等级为中等的等级为中等的等级为中等的等级为中等 n,n);n,n);case 6:case 6:printfprintf(成绩成绩成绩成绩%d d的等级为及格的等级为及格的等级为及格的等级为及格 n,n);n,n);default:default:printfprintf(成绩成绩成绩成绩%d d的

6、等级为不及格的等级为不及格的等级为不及格的等级为不及格 n,n);n,n);【例【例7.17.1】编写程序,对学生成绩进行等级评定。将成绩分为几个编写程序,对学生成绩进行等级评定。将成绩分为几个等级:等级:0 05959分为不及格,分为不及格,60606969分为及格,分为及格,70707979分为中等,分为中等,80808989分为良好,分为良好,9090100100分为优秀。要求输入一个成绩,输出其对分为优秀。要求输入一个成绩,输出其对应的等级。应的等级。请输入成绩:请输入成绩:78成绩成绩78的等级为中等的等级为中等成绩成绩78的等级为及格的等级为及格 成绩成绩78的等级为不及格的等级为

7、不及格 出错啦!?出错啦!?2022/11/19C语言程序设计基础篇n在在“switchswitch”语句中,语句中,“case case 常量表常量表达式达式”只相当于一个语句标号,表达式只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳但不能在执行完该标号的语句后自动跳出整个出整个switch switch 语句,因此会继续执行语句,因此会继续执行所有后面语句的情况。所有后面语句的情况。n为此,语言提供了一种为此,语言提供了一种breakbreak语句,语句,其功能是可以跳出它所在的其功能是可以跳出它所在的sw

8、itchswitch语句。语句。2022/11/19C语言程序设计基础篇将上面的例将上面的例7.17.1修改如下:修改如下:void main()void main()intint n;n;printfprintf(请输入成绩:请输入成绩:请输入成绩:请输入成绩:););scanf(%d,&nscanf(%d,&n););switch(int)(n/10)switch(int)(n/10)case 10:case 10:printfprintf(成绩成绩成绩成绩%d d的等级为优秀的等级为优秀的等级为优秀的等级为优秀 n,n);break;n,n);break;case 9:case 9:pr

9、intfprintf(成绩成绩成绩成绩%d d的等级为优秀的等级为优秀的等级为优秀的等级为优秀 n,n);break;n,n);break;case 8:case 8:printfprintf(成绩成绩成绩成绩%d d的等级为良好的等级为良好的等级为良好的等级为良好 n,n);break;n,n);break;case 7:case 7:printfprintf(成绩成绩成绩成绩%d d的等级为中等的等级为中等的等级为中等的等级为中等 n,n);break;n,n);break;case 6:case 6:printfprintf(成绩成绩成绩成绩%d d的等级为及格的等级为及格的等级为及格的

10、等级为及格 n,n);break;n,n);break;default:default:printfprintf(成绩成绩成绩成绩%d d的等级为不及格的等级为不及格的等级为不及格的等级为不及格 n,n);n,n);请输入成绩:请输入成绩:78成绩成绩78的等级为中等的等级为中等2022/11/19C语言程序设计基础篇使用使用switch语句时还应注意以下几点语句时还应注意以下几点 n nswitchswitchswitchswitch后面圆括号内表达式的值和后面圆括号内表达式的值和后面圆括号内表达式的值和后面圆括号内表达式的值和casecasecasecase语句中常量表语句中常量表语句中常

11、量表语句中常量表达式的值,都必须是整型的、枚举型的或字符型的,达式的值,都必须是整型的、枚举型的或字符型的,达式的值,都必须是整型的、枚举型的或字符型的,达式的值,都必须是整型的、枚举型的或字符型的,不允许是浮点型的。在不允许是浮点型的。在不允许是浮点型的。在不允许是浮点型的。在casecasecasecase后的各常量表达式的值不后的各常量表达式的值不后的各常量表达式的值不后的各常量表达式的值不能相同。能相同。能相同。能相同。n n每每每每个个个个casecasecasecase子子子子句句句句既既既既可可可可以以以以是是是是一一一一条条条条语语语语句句句句,也也也也可可可可以以以以是是是是

12、多多多多条条条条语语语语句句句句。当是多条语句时,不需要用花括号括起来。当是多条语句时,不需要用花括号括起来。当是多条语句时,不需要用花括号括起来。当是多条语句时,不需要用花括号括起来。n n各各各各个个个个casecasecasecase子子子子句句句句和和和和defaultdefaultdefaultdefault子子子子句句句句的的的的先先先先后后后后顺顺顺顺序序序序可可可可以以以以变变变变动动动动,而而而而不会影响程序执行结果。不会影响程序执行结果。不会影响程序执行结果。不会影响程序执行结果。n ndefaultdefaultdefaultdefault子句可以省略不用。子句可以省略不

13、用。子句可以省略不用。子句可以省略不用。n n多多多多个个个个casecasecasecase的的的的后后后后面面面面可可可可以以以以共共共共用用用用一一一一组组组组执执执执行行行行语语语语句句句句 。如如如如例例例例7.17.17.17.1中中中中等级为优秀的判断程序可改为:等级为优秀的判断程序可改为:等级为优秀的判断程序可改为:等级为优秀的判断程序可改为:2022/11/19C语言程序设计基础篇switch(int)(n/10)switch(int)(n/10)case 10:case 10:case 9:case 9:printfprintf(成绩成绩成绩成绩%d d的等级为优秀的等级为

14、优秀的等级为优秀的等级为优秀 n);n);break;break;2022/11/19C语言程序设计基础篇7.2 嵌套循环结构程序设计嵌套循环结构程序设计 在一个循环内又完整地包含另一个循环,称为在一个循环内又完整地包含另一个循环,称为循环的嵌套循环的嵌套。for语句可以与语句可以与while语句、语句、do-while语句相互嵌套,构成多重循环,例如:语句相互嵌套,构成多重循环,例如:2022/11/19C语言程序设计基础篇(1 1)(2 2)for()for()dodo while()for()while()for()while();while();(3 3)(4 4)while()for

15、()while()for()for()for()for()for()2022/11/19C语言程序设计基础篇for(i=1;i=9;i+)打印第打印第i行行;【例【例7.2】打印乘法小九九表。打印乘法小九九表。使用一个循环使用一个循环9次的循环语句次的循环语句,每次循环打印一行:,每次循环打印一行:打印第打印第i i行,循环行,循环i i次次,每次循环打印一个表达式每次循环打印一个表达式:for(j=1;j=i;j+)打印第打印第j个表达式个表达式;打印完一行后换行打印完一行后换行 2022/11/19C语言程序设计基础篇#include void main()int i,j;for(i=1;

16、i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%-3d,i,j,i*j);printf(n);程序运行情况如下:程序运行情况如下:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=

17、56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=812022/11/19C语言程序设计基础篇【例【例7.3】百鸡问题。百鸡问题。#includestdio.hvoid main()int x,y,z;for(x=1;x=20;x+)/*用嵌套的用嵌套的for循循环环依次依次设设公公鸡鸡有有1,2,20只只*/for(y=1;y=33;y+)/*设设母母鸡鸡有有1,2,33只只*/for(z=3;z100;z+=3)/*设设小小鸡鸡有有3,6,99只只*/if(x*5+y*3+z/3=100&x+y+z=10

18、0)printf(“公公 鸡鸡%d只只、母母 鸡鸡%d只只、小小 鸡鸡%d只只 n,x,y,z);程序运行结果如下:程序运行结果如下:公鸡公鸡4只、母鸡只、母鸡18只、小鸡只、小鸡78只只公鸡公鸡8只、母鸡只、母鸡11只、小鸡只、小鸡81只只公鸡公鸡12只、母鸡只、母鸡4只、小鸡只、小鸡84只只 2022/11/19C语言程序设计基础篇7.3 break语句和语句和continue语句语句在循环中的应用在循环中的应用 n nbreakbreak语语语语句句句句只只只只能能能能用用用用在在在在switchswitch语语语语句句句句或或或或循循循循环环环环语语语语句句句句中中中中,其其其其作作作

19、作用用用用是是是是跳跳跳跳出出出出switchswitch语语语语句句句句或或或或跳跳跳跳出出出出本本本本层层层层循循循循环环环环,转转转转去去去去执执执执行行行行后后后后面面面面的的的的程程程程序序序序。由由由由于于于于breakbreak语语语语句句句句的的的的转转转转移移移移方方方方向向向向是是是是明明明明确确确确的的的的,所所所所以以以以不不不不需需需需要要要要语语语语句句句句标标标标号号号号与与与与之之之之配配配配合合合合。breakbreak语句的一般形式为语句的一般形式为语句的一般形式为语句的一般形式为 break;break;n n 注意注意注意注意:nbreak语句对语句对i

20、f-else的条件语句不起作用。的条件语句不起作用。n在多层循环中,一个在多层循环中,一个break语句只向外跳一层。语句只向外跳一层。n使用使用break语句可以使循环语句有多个出口语句可以使循环语句有多个出口 2022/11/19C语言程序设计基础篇continue 语句语句n ncontinuecontinuecontinuecontinue语句只能用在循环体中,其一般格式是:语句只能用在循环体中,其一般格式是:语句只能用在循环体中,其一般格式是:语句只能用在循环体中,其一般格式是:continue;continue;n n其语义是:结束本次循环,即不再执行循环体中其语义是:结束本次循环

21、,即不再执行循环体中其语义是:结束本次循环,即不再执行循环体中其语义是:结束本次循环,即不再执行循环体中continue continue 语句之后的语句,转入下一次循环条件的判语句之后的语句,转入下一次循环条件的判语句之后的语句,转入下一次循环条件的判语句之后的语句,转入下一次循环条件的判断与执行。应注意的是,本语句只结束本层本次的循断与执行。应注意的是,本语句只结束本层本次的循断与执行。应注意的是,本语句只结束本层本次的循断与执行。应注意的是,本语句只结束本层本次的循环,并不跳出循环。环,并不跳出循环。环,并不跳出循环。环,并不跳出循环。continuecontinue语句只用在语句只用在

22、语句只用在语句只用在forfor、whilewhile、do-whiledo-while等循环体中,常与等循环体中,常与等循环体中,常与等循环体中,常与if if条件语句一起使用,用条件语句一起使用,用条件语句一起使用,用条件语句一起使用,用来加速循环。来加速循环。来加速循环。来加速循环。1)1)while(while(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)break;2)break;2)2)while(while(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)continue;2)continue;2022/11/19C语言程序设计

23、基础篇2022/11/19C语言程序设计基础篇【例7.4】输出100以内能被7整除的数。#include include stdio.hstdio.h void main()void main()intint n;n;for(n=1;n=100;n+)for(n=1;n=100;n+)if(n%7!=0)if(n%7!=0)continue;continue;printf(%dprintf(%d,n);,n);printf(nprintf(n););程序运行情况如下:程序运行情况如下:7 14 21 28 35 42 49 56 63 70 77 84 91 982022/11/19C语言程序

24、设计基础篇【例例7.5】判断判断m是否素数是否素数#include#include int main()int m,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k+1)printf(%d is a prime numbern,m);else printf(%d is not a prime numbern,m);return(0);2022/11/19C语言程序设计基础篇7.4 程序举例程序举例【例【例7.6】模拟自动饮料机模拟自动饮料机#include include stdio.hstdio.h void main()void main()intint but

25、ton;button;printfprintf(=(=自动饮料机自动饮料机自动饮料机自动饮料机=n);n);printf(1.printf(1.可口可乐可口可乐可口可乐可口可乐 n);n);printf(2.printf(2.雪碧雪碧雪碧雪碧 n);n);printf(3.printf(3.百事可乐百事可乐百事可乐百事可乐 n);n);printf(4.printf(4.芬达芬达芬达芬达 n);n);printf(5.printf(5.非常可乐非常可乐非常可乐非常可乐 n);n);printfprintf(请按请按请按请按1 15 5键选择饮料:键选择饮料:键选择饮料:键选择饮料:n);n);

26、scanf(%dscanf(%d,&button);,&button);2022/11/19C语言程序设计基础篇switch(button)switch(button)case 1:case 1:printf(nprintf(n你获得一听可口可乐你获得一听可口可乐 n);n);break;break;case 2:case 2:printf(nprintf(n你获得一听雪碧你获得一听雪碧 n);n);break;break;case 3:case 3:printf(nprintf(n你获得一听百事可乐你获得一听百事可乐 n);n);break;break;case 4:case 4:print

27、f(nprintf(n你获得一听芬达你获得一听芬达 n);n);break;break;case 5:case 5:printf(nprintf(n你获得一听非常可乐你获得一听非常可乐 n);n);break;break;default:default:printf(nprintf(n非法操作!非法操作!n);n);程序运行情况如下:程序运行情况如下:=自动饮料机自动饮料机=1可口可乐可口可乐2雪碧雪碧3百事可乐百事可乐4芬达芬达5非常可乐非常可乐请按请按15键选择饮料:键选择饮料:3你获得一听百事可乐你获得一听百事可乐2022/11/19C语言程序设计基础篇【例【例7.10】数组元素排序数组

28、元素排序冒泡排序冒泡排序(以升序为例)(以升序为例)n n排序过程:排序过程:排序过程:排序过程:n比较第一个数与第二个数,若为逆序比较第一个数与第二个数,若为逆序a0a1,则交换;然后比较则交换;然后比较第二个数与第三个数;依次类推,直至第第二个数与第三个数;依次类推,直至第n-1个数和第个数和第n个数比较为个数比较为止止第一趟冒泡排序第一趟冒泡排序,结果,结果最大最大的数被安置在最后一个元素位置的数被安置在最后一个元素位置上上n对前对前n-1个数进行第二趟冒泡排序,结果使个数进行第二趟冒泡排序,结果使次大次大的数被安置在第的数被安置在第n-1个元素位置个元素位置n重复上述过程,共经过重复上

29、述过程,共经过n-1趟冒泡排序后,排序结束趟冒泡排序后,排序结束2022/11/19C语言程序设计基础篇例38 49 65 76 13 27 30 97 第一趟38 49 65 13 27 30 76 第二趟38 49 13 27 30 65 第三趟38 13 27 30 49 第四趟13 27 30 38 第五趟13 27 30 第六趟49 38 65 97 76 13 27 30 初始关键字n=83849769713972797309713767676273013652765306513134949304927382738303813 27 第七趟2022/11/19C语言程序设计基础篇输

30、入n 个数给a0 到 an-1for (i=0;in-1;i+)for(j=0;jaj+1真假ajaj+1输出a0 到 an-1#include main()int a10,i,j,t;printf(Input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);printf(n);for(i=0;i9;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;printf(The sorted numbers:n);for(i=0;i10;i+)printf(%d,ai);2022/11/19C语言程序设计基础篇【例【例7.11】数组元素排序

31、数组元素排序选择排序选择排序(以升序为例)(以升序为例)n n排序过程:排序过程:排序过程:排序过程:n首先通过首先通过n-1次比较,从次比较,从n个数中找出最小个数中找出最小的,的,将它与第一个数将它与第一个数 交换交换第一趟选第一趟选择排序择排序,结果,结果最小最小的数被安置在第一个元的数被安置在第一个元素位置上素位置上n再通过再通过n-2次比较,从剩余的次比较,从剩余的n-1个数中找个数中找出关键字出关键字次小次小的记录,将它与第二个数交的记录,将它与第二个数交换换第二趟选择排序第二趟选择排序n重复上述过程,共经过重复上述过程,共经过n-1趟排序后,排序趟排序后,排序结束结束2022/1

32、1/19C语言程序设计基础篇例初始:49 38 65 97 76 13 27 kji=11349一趟:13 38 65 97 76 49 27 i=22738二趟:13 27 65 97 76 49 38 三趟:13 27 38 97 76 49 65 四趟:13 27 38 49 76 97 65 五趟:13 27 38 49 65 97 76 六趟:13 27 38 49 65 76 97 kkkkjjjjjjjjjj2022/11/19C语言程序设计基础篇输入n 个数给a0 到 an-1for (i=0;in-1;i+)for (j=i+1;jn;j+)ajak真假k=j输出a0 到 an-1k=iaiaki!=k真假2022/11/19

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁