C语言程序设计循环例子课件

上传人:工**** 文档编号:578285261 上传时间:2024-08-23 格式:PPT 页数:28 大小:359KB
返回 下载 相关 举报
C语言程序设计循环例子课件_第1页
第1页 / 共28页
C语言程序设计循环例子课件_第2页
第2页 / 共28页
C语言程序设计循环例子课件_第3页
第3页 / 共28页
C语言程序设计循环例子课件_第4页
第4页 / 共28页
C语言程序设计循环例子课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《C语言程序设计循环例子课件》由会员分享,可在线阅读,更多相关《C语言程序设计循环例子课件(28页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计基础篇第7章简单程序设计之二1C语言程序设计循环例子本章内容提要本章内容提要多分支选择结构switch语句循环嵌套break语句和continue语句程序举例2C语言程序设计循环例子教学目标n在在三三种种基基本本结结构构的的基基础础上上,结结合合本本章章介介绍绍流流程程控控制制的的其其他他几几个个语语句句:switch语语句句、break语语句句和和continue语语句句及及循循环环的的嵌嵌套套,实实现现复复杂杂的的算算法法,设设计计出出结结构构清清晰晰、功功能能强强大大的的程程序序,对对C语语言言程程序序开开发发设设计计有有比比较较深深刻刻的的认识。认识。3C语言程序设计循环

2、例子7.1多分支选择结构程序设计1、语句形式:句形式: switch (表达式)表达式) case 常量常量1: 语句句1; case 常量常量2: 语句句2; case 常量常量3: 语句句3; . case 常量常量n: 语句句n; default : 语句句n+1; 根据表达式的不同值,选择不同的根据表达式的不同值,选择不同的程序分支,又称开关语句程序分支,又称开关语句。常量表达式的值必须互不相同,否则执行时将出现矛盾,即同一个开关值,将对应多种执行方案。千万不能千万不能接接(;)号号4C语言程序设计循环例子2、语句句执行流程:行流程:指语句的最指语句的最后一条是否后一条是否为为brea

3、k简单语句或简单语句或复合语句复合语句breakbreak有有无break有无有计算表达式算表达式常量常量1 1常量常量2 2常量常量n=语句句1 1=语句句2 2语句句n其它其它=语句句n+1无值值casecase语句出语句出现的次序并现的次序并不影响执行不影响执行结果。结果。5C语言程序设计循环例子void main() int n; printf(请输入成绩:); scanf(%d,&n); switch (int)(n/10) case 10: printf(成绩%d的等级为优秀n,n); case 9: printf(成绩%d的等级为优秀n,n); case 8: printf(成绩

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

5、的等级。请输入成绩:请输入成绩:78成绩成绩78的等级为中等的等级为中等成绩成绩78的等级为及格的等级为及格 成绩成绩78的等级为不及格的等级为不及格 出错啦!?出错啦!?6C语言程序设计循环例子在“switch”语句中,“case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,因此会继续执行所有后面语句的情况。为此,语言提供了一种break语句,其功能是可以跳出它所在的switch语句。7C语言程序设计循环例子将上面的例将上面的例7.17.1修改如下:修改如下:void main() int n; pri

6、ntf(请输入成绩:); scanf(%d,&n); switch (int)(n/10) case 10: printf(成绩%d的等级为优秀n,n);break; case 9: printf(成绩%d的等级为优秀n,n); break; case 8: printf(成绩%d的等级为良好n,n); break; case 7: printf(成绩%d的等级为中等n,n); break; case 6: printf(成绩%d的等级为及格n,n); break; default: printf(成绩%d的等级为不及格n,n); 请输入成绩:请输入成绩:78成绩成绩78的等级为中等的等级为中

7、等8C语言程序设计循环例子使用使用switchswitch语句时还应注意以下几点语句时还应注意以下几点 switch后面圆括号内表达式的值和case语句中常量表达式的值,都必须是整型的、枚举型的或字符型的,不允许是浮点型的。在case后的各常量表达式的值不能相同。 每个case子句既可以是一条语句,也可以是多条语句。当是多条语句时,不需要用花括号括起来。各个case子句和default子句的先后顺序可以变动,而不会影响程序执行结果。 default子句可以省略不用。 多个case的后面可以共用一组执行语句 。如例7.1中等级为优秀的判断程序可改为: 9C语言程序设计循环例子switch(int

8、)(n/10) case 10: case 9: printf(成绩%d的等级为优秀n); break; 10C语言程序设计循环例子7.2 嵌套循环结构程序设计 在一个循环内又完整地包含另一个循环,称为在一个循环内又完整地包含另一个循环,称为循环的嵌套循环的嵌套。for语句可以与语句可以与while语句、语句、do-while语句相互嵌套,构成多重循环,例如:语句相互嵌套,构成多重循环,例如: 11C语言程序设计循环例子(1) (2)for() do while() for() while();(3) (4)while() for() for() for() 12C语言程序设计循环例子for

9、(i=1;i=9;i+)打印第打印第i行行;【例【例7.2】打印乘法小九九表。打印乘法小九九表。 使用一个循环使用一个循环9次的循环语句次的循环语句,每次循环打印一行:,每次循环打印一行:打印第打印第i i行,循环行,循环i i次次, ,每次循环打印一个表达式每次循环打印一个表达式: for (j=1;j=i;j+)打印第打印第j个表达式个表达式;打印完一行后换行打印完一行后换行 13C语言程序设计循环例子#include void main()int i,j;for (i=1;i=9;i+)for (j=1;j=i;j+) printf(%d*%d=%-3d,i,j,i*j);printf(

10、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=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63

11、 9*8=72 9*9=8114C语言程序设计循环例子【例【例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=100) printf(“公 鸡 %d只 、 母 鸡 %d只 、 小 鸡 %d只 n,x,y,z); 程序运行结果如下:程序运行结果如下:公鸡公鸡4只

12、、母鸡只、母鸡18只、小鸡只、小鸡78只只公鸡公鸡8只、母鸡只、母鸡11只、小鸡只、小鸡81只只公鸡公鸡12只、母鸡只、母鸡4只、小鸡只、小鸡84只只 15C语言程序设计循环例子7.37.3breakbreak语句和语句和continuecontinue语句在循环中的应用语句在循环中的应用 break语句只能用在switch语句或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。由于break语句的转移方向是明确的,所以不需要语句标号与之配合。break语句的一般形式为 break;注意:break语句对if-else的条件语句不起作用。在多层循环中,一个break语

13、句只向外跳一层。使用break语句可以使循环语句有多个出口16C语言程序设计循环例子continuecontinue语句语句continue语句只能用在循环体中,其一般格式是: continue;其语义是:结束本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断与执行。应注意的是,本语句只结束本层本次的循环,并不跳出循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。1)while(表达式1)if(表达式2)break;2)2) while(while(表达式表达式1)1) if( if(表达式

14、表达式2)continue;2)continue; 17C语言程序设计循环例子18C语言程序设计循环例子【例7.4】输出100以内能被7整除的数。#include stdio.h void main() int n; for(n=1;n=100;n+) if (n%7!=0) continue; printf(%d ,n); printf(n);程序运行情况如下:程序运行情况如下:7 14 21 28 35 42 49 56 63 70 77 84 91 9819C语言程序设计循环例子【例例7.57.5】判断判断mm是否素数是否素数#include#includeintmain()intm,i

15、,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k+1)printf(%disaprimenumbern,m);elseprintf(%disnotaprimenumbern,m);return(0);20C语言程序设计循环例子7.47.4程序举例程序举例 【例【例7.6】模拟自动饮料机模拟自动饮料机 #include stdio.hvoid main() int button; printf(=自动饮料机=n); printf(1.可口可乐n); printf(2.雪碧n); printf(3.百事可乐n); printf(4.芬达n); printf(5.非常可乐n

16、); printf(请按15键选择饮料:n); scanf(%d,& button);21C语言程序设计循环例子switch(button) case 1: printf(n你获得一听可口可乐n); break; case 2: printf(n你获得一听雪碧n); break; case 3: printf(n你获得一听百事可乐n); break; case 4: printf(n你获得一听芬达n); break; case 5: printf(n你获得一听非常可乐n); break; default: printf(n非法操作!n); 程序运行情况如下:程序运行情况如下:=自动饮料机自动饮

17、料机=1可口可乐可口可乐2雪碧雪碧3百事可乐百事可乐4芬达芬达5非常可乐非常可乐请按请按15键选择饮料:键选择饮料:3你获得一听百事可乐你获得一听百事可乐22C语言程序设计循环例子【例【例7.10】数组元素排序数组元素排序冒泡排序(以升序为例)冒泡排序(以升序为例) 排序过程:比较第一个数与第二个数,若为逆序a0a1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置重复上述过程,共经过n-1趟冒泡排序后,排序结束23C语言程序设计循环例

18、子例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 第七趟24C语言程序设计循环例子输入n 个数给a0 到 an-1for (i=0;in-1;i+)for ( j=0;jaj+1真假ajaj+1输出a

19、0 到 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);25C语言程序设计循环例子【例【例7.11】数组元素排序数组元素排序选择排序(以升序为例)选择排序(以升序为例)排序过程:首先通过n-1次比较,从n个数中找

20、出最小的, 将它与第一个数 交换第一趟选择排序,结果最小的数被安置在第一个元素位置上再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序重复上述过程,共经过n-1趟排序后,排序结束26C语言程序设计循环例子例初始: 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 kkkkjjjjjjjjjj27C语言程序设计循环例子输入n 个数给a0 到 an-1for (i=0; in-1;i+)for (j=i+1;jn;j+)ajak真假k=j输出a0 到 an-1k=iaiaki != k真假28C语言程序设计循环例子

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号