第5课-循环.ppt_第1页
第5课-循环.ppt_第2页
第5课-循环.ppt_第3页
第5课-循环.ppt_第4页
第5课-循环.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

错误汇总 1 main If c a switch 表达式 caseC1 语句1 caseC2 语句2 caseCn 语句n default 语句n 1 5 4switch语句 switch中的表达式必须放在括号中 C1至Cn是常量表达式 与switch中表达式的取值对应 default可缺省 当表达式e的值不是C1到Cn的情况 例 由等级输出分数段 switch grade case A printf 85 100 n case B printf 70 84 n case C printf 60 69 n case D printf 60 n default printf error n 改为 switch 表达式 caseC1 语句序列1 break caseC2 语句序列2 break caseCn 语句序列n break default 语句序列n 1 break 例 由等级输出分数段 switch grade case A printf 85 100 n break case B printf 70 84 n break case C printf 60 69 n break case D printf 60 n break default printf error n break 说明 1 default可省略 2 C1 Cn必须互不相同 3 C1 Cn无次序影响 4 允许多个case共用一个执行语句 5 break语句只能跳出一层 内外层情况常可相同 如 intx 1 y 0 switch x case1 switch y case0 printf 1 n break case1 printf 2 n break case2 printf 3 n 运行结果为 1 3 编写程序 输入学生的考分 输出等级 等级划分的规则如下 分数在100 90 等级为A 分数在89 80 等级为B 分数在79 70 等级为C 分数在69 60 等级为D 分数在59 0 等级为E main floatscore chargrade printf 请输入学生成绩 scanf f main floatscore chargrade printf 请输入学生成绩 scanf f switch int score 10 case10 case9 grade A break case8 grade B break case7 grade C break case6 grade D break case5 case4 case3 case2 case1 case0 grade E printf 成绩是 f 等级是 c n score grade 例 运输公司对用户计算运费 路程 s 越远 每公里运费越低 标准如下 折扣dswitch s 250 s 250km没有折扣00250 s 5002 折扣2 1500 s 10005 折扣5 2 31000 s 20008 折扣8 4 5 6 72000 s 300010 折扣10 8 9 10 113000 s15 折扣15 12设每公里每吨的基本运费为p 货物重为w 距离为s 折扣为d 则总运费f的计算公式为 f p w s 1 d switch c case0 d 0 break case1 d 2 break case2 case3 d 5 break case4 case5 case6 case7 d 8 break case8 case9 case10 case11 d 10 break case12 d 15 break f p w s 1 d 100 0 printf feight f f main intc s floatp w d f scanf f f d 第6章循环控制 6 1概述 问题1 假如全班41人 欲从键盘上输入每人的数学成绩 然后计算出平均成绩 问题2 编程计算n 在C语言中可以用以下语句来实现循环 1 goto 2 while 3 do while 4 for 语法 gotolabel 1 其中label 1是语句标号 它命名的规则同变量名 语义 使程序无条件地转向标号为label的语句去执行 如 用if语句构成循环 求sum 1 2 100main inti 1 sum 0 loop if i 100 sum i i gotoloop printf d sum 6 2goto语句及用goto构成循环 语法 while exp 循环体语句 语义 当exp为真时 执行循环体 为假时 执行循环语句的后续语句 如 用while语句构成循环 求sum 1 2 100 6 3while语句 程序 main inti 1 sum 0 while i 100 sum i i printf d sum 说明 循环体可以用复合语句 在while语句前应有为测试表达式 exp 中的循环控制变量赋初值的语句 以确保循环的正常开始 循环体内应有改变循环控制变量的语句 以确保循环进行有限次后正常结束 如 i 1 while i 100 sum sum 1 死循环 while循环的特点是先判断后执行 故循环有可能一次都不被执行 如 i 3 while i 3 printf i d n i 语法 do循环体语句 while exp 语义 当exp为真时 执行循环体 为假时 执行循环语句的后续语句 如 用do while语句构成循环 求sum 1 2 100 6 4do while语句 程序如下 main inti 1 sum 0 do sum i i while i 100 printf d sum 说明 1 循环体可以用复合语句 2 循环控制变量在执行do前必须赋初值 3 循环体内应有改变循环控制变量的语句 4 do while循环的特点是先执行后判断 故循环至少被执行一次 如 i 3 do sum i i while i 10 语法 for 表达式1 表达式2 表达式3 循环体语句 可看成 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 语意 如 for i 1 i 100 i sum sum i 6 5for语句 说明 1 for循环更简洁 更灵活 2 循环体可以是复合语句 3 for语句中的三个表达式均可以是逗号表达式 故可同时对多个变量赋初值及修改 如 for i 0 j 1 j n 省表达式3 如 for i 1 i5 break 三个表达式全省时 如 for 语句 等价于 while 1 语句 5 for语句中的循环体可以是空语句 三种循环可以互相嵌套例 打印九九乘法表 main inti j for i 1 i 9 i for j 1 j 9 j printf d d 2d i j i j printf n 6 6循环的嵌套 说明 内循环必须完全包含在外循环中 不能交叉 并列循环允许使用相同的循环变量 嵌套循环不允许 6 7几种循环的比较 1 四种循环可互相代替 一般不用goto 2 while和do while中在while后指定条件 循环体中包含使循环趋于结束的语句 for在exp3中可含使循环趋于结束的语句 还可含循环体 3 while和do while中 循环变量初始化应在while和do while语句前完成 for可在exp1中实现循环变量初始化 4 除goto循环外 都能用break跳出循环 用continue结束本次循环 6 8break语句和continue语句 一 break语句break只能用在循环语句 switch语句中 它的功能是强行退出循环或switch 例 for r 1 r100 break printf f area 二 continue语句只能用在循环语句中 它的功能是结束本次循环 跳到循环体下面尚未执行的语句 接着进行下次是否执行循环的判定 例 输出100 200之间不能被3整除的数 main intn for n 100 n 200 n if n 3 0 continue printf d n 说明 continue和break语句的区别 前者只结束本次循环 而不是终止整个循环 后者则是结束整个循环过程 在多重循环中 break只能退出其所在循环 允许使用break或goto语句将循环控制从循环体内转到循环体外 也可以用continue语句将控制在循环体内转移 但不允许用任何方式从循环体外转到循环体内 例1 求Fibonacci数列 1 1 2 3 5 8 的前40个数 即F1 1 F2 1 Fn Fn 1 Fn 2 n大于2 分析 算法如下 main longintf1 1 f2 1 for i 1 i 20 i printf ld ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 6 9程序举例 例2 判别m是否为素数 分析 算法如下 i k 1 includemain intm i k scanf d 例3 对于 5 x 11 10 y 9 6 z 18 求方程 x3 y3 z3 3的全部解 枚举法 就是逐一列举出可能解的各个元素 并加以判断 直到求得所需要的解 常用在排列 组合 数据分类 信息检索 多解方程的求解上 for x 5 x 12 x for y 10 y 10 y for z 6 z 19 z if x x x y y y z z z 3 printf 5d 5d 5d n x y z 例4 打印出所有的 水仙花数 所谓 水仙花数 是指一个3位数 其各位数字的立方和等于该数本身 例如 15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论