c语言 程序循环,C语言程序设计-循环例子

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

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

2、: 语句3; . case 常量n: 语句n; default : 语句n+1; ,根据表达式的不同值,选择不同的程序分支,又称开关语句。,数值型 或 字符型,常量表达式的值必须互不相同,否则执行时将出现矛盾,即同一个开关值,将对应多种执行方案。,2020年8月15日,2、语句执行流程:,指语句的最后一条是否为break,简单语句或复合语句,case语句出 现的次序并 不影响执行 结果。,2020年8月15日,void main() int n; printf(请输入成绩:); scanf(%d, ,【例7.1】编写程序,对学生成绩进行等级评定。将成绩分为几个等级:059分为不及格,6069分。

3、为及格,7079分为中等,8089分为良好,90100分为优秀。要求输入一个成绩,输出其对应的等级。,请输入成绩:78 成绩78的等级为中等 成绩78的等级为及格 成绩78的等级为不及格,出错啦!?,2020年8月15日,在“switch”语句中,“case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,因此会继续执行所有后面语句的情况。 为此,语言提供了一种break语句,其功能是可以跳出它所在的switch语句。,2020年8月15日,将上面的例7.1修改如下:,void main() int n; p。

4、rintf(请输入成绩:); scanf(%d, ,请输入成绩:78 成绩78的等级为中等,2020年8月15日,使用switch语句时还应注意以下几点,switch后面圆括号内表达式的值和case语句中常量表达式的值,都必须是整型的、枚举型的或字符型的,不允许是浮点型的。在case后的各常量表达式的值不能相同。 每个case子句既可以是一条语句,也可以是多条语句。当是多条语句时,不需要用花括号括起来。 各个case子句和default子句的先后顺序可以变动,而不会影响程序执行结果。 default子句可以省略不用。 多个case的后面可以共用一组执行语句 。如例7.1中等级为优秀的判断程序可。

5、改为:,2020年8月15日,switch(int)(n/10) case 10: case 9: printf(成绩%d的等级为优秀n); break; ,2020年8月15日,7.2 嵌套循环结构程序设计,在一个循环内又完整地包含另一个循环,称为循环的嵌套。for语句可以与while语句、do-while语句相互嵌套,构成多重循环,例如:,2020年8月15日,(1) (2) for() do while() for() while(); (3) (4) while() for() for() for() ,2020年8月15日,for (i=1;i=9;i+) 打印第i行; ,【例7.2。

6、】打印乘法小九九表。,使用一个循环9次的循环语句,每次循环打印一行:,打印第i行,循环i次,每次循环打印一个表达式:,for (j=1;j=i;j+) 打印第j个表达式; ,打印完一行后换行,2020年8月15日,#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(n); ,程序运行情况如下: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=。

7、15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*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=81,2020年8月15日,【例7.3】百鸡问题。,#includestdio.h void main() int x,y,z; for(x=1;x=20;x+。

8、) /*用嵌套的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 ,程序运行结果如下: 公鸡4只、母鸡18只、小鸡78只 公鸡8只、母鸡11只、小鸡81只 公鸡12只、母鸡4只、小鸡84只,2020年8月15日,7.3 break语句和continue语句在循环中的应用,break语句只能用在switch语句或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。由于break语句的转移方向是明确的,所以。

9、不需要语句标号与之配合。break语句的一般形式为 break; 注意: break语句对if-else的条件语句不起作用。 在多层循环中,一个break语句只向外跳一层。 使用break语句可以使循环语句有多个出口,2020年8月15日,continue 语句,continue语句只能用在循环体中,其一般格式是: continue; 其语义是:结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环条件的判断与执行。应注意的是,本语句只结束本层本次的循环,并不跳出循环。 continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用。

10、,用来加速循环。 1) while(表达式1) if(表达式2)break; ,2) while(表达式1) if(表达式2)continue; ,2020年8月15日,2020年8月15日,【例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 98,2020年8月15日,【例7.5】判断m是否素数,#in。

11、clude #include int main() int m, i, k; scanf(%d, ,2020年8月15日,7.4 程序举例 【例7.6】模拟自动饮料机,#include stdio.h void main() int button; printf(=自动饮料机=n); printf(1.可口可乐n); printf(2.雪碧n); printf(3.百事可乐n); printf(4.芬达n); printf(5.非常可乐n); printf(请按15键选择饮料:n); scanf(%d,2020年8月15日,switch(button) case 1: printf(n你获得一。

12、听可口可乐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); ,程序运行情况如下: =自动饮料机= 1可口可乐 2雪碧 3百事可乐 4芬达 5非常可乐 请按15键选择饮料: 3 你获得一听百事可乐,2020年8月15日,【例7.10】数组元素排序冒泡排序(以升序为例),排序过程: 比较第一个数与第。

13、二个数,若为逆序a0a1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上 对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置 重复上述过程,共经过n-1趟冒泡排序后,排序结束,2020年8月15日,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,2020年8月15日,#include main() int a10,i,j,t;。

14、 printf(Input 10 numbers:n); for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; printf(The sorted numbers:n); for(i=0;i10;i+) printf(%d ,ai); ,2020年8月15日,【例7.11】数组元素排序选择排序(以升序为例),排序过程: 首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数 交换第一趟选择排序,结果最小的数被安置在第一个元素位置上 再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序 重复上述过程,共经过n-1趟排序后,排序结束,2020年8月15日,例,初始: 49 38 65 97 76 13 27 ,i=1,13,49,一趟: 13 38 65 97 76 49 27 ,i=2,27,38,六趟: 13 27 38 49 65 76 97 ,2020年8月15日。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值