循环结构程序设计1.ppt_第1页
循环结构程序设计1.ppt_第2页
循环结构程序设计1.ppt_第3页
循环结构程序设计1.ppt_第4页
循环结构程序设计1.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1 第六章 循环结构程序设计 2 一 循环语句概述二 实现循环结构的控制语句三 循环嵌套四 循环结构五 程序举例 主要内容 第六章循环结构程序设计 3 一 循环语句概述 思考 求1 100的累加和 分析 换一种思路 sum 1 2 100 首先设置一个累加器sum 其初值为0 利用sum n来计算 n依次取1 2 100 只要解决以下3个问题即可 1 将n的初值置为1 2 每执行1次 sum n 后 n增1 3 当n增到101时 停止计算 此时 sum的值就是1 100的累加和 sum sum n 第六章循环结构程序设计 4 二 实现循环结构的控制语句 第六章循环结构程序设计 一 while语句 二 do while语句 三 for语句 四 break continue语句 五 几种循环的比较 5 格式 while 表达式 循环体语句 一 while语句 P117 说明 1 循环体如果包含一个以上的语句 必须使用复合语句形式 2 在循环体中 必须有使循环条件趋向于不满足 假 的语句 3 先判断表达式 后执行语句 含义 当表达式为真 非0值 时 执行while语句中的内嵌语句 执行过程 6 二 while语句 sum 55 举例 求1 10的累加和 includevoidmain inti sum i 1 sum 0 while i 10 sum sum i i printf sum 5d n sum 思考 1 如果去掉循环体中的大括号 执行过程将会怎样变化 2 在循环体中 使循环条件趋向于不满足 假 的语句是哪条 3 注意while中条件表达式的边界 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 7 格式 do循环体语句while 表达式 三 do while语句 P117 说明 1 循环体如果包含一个以上的语句 必须使用复合语句形式 2 在循环体中 必须有使循环条件趋向于不满足 假 的语句 3 先执行循环体语句 后判断表达式的值 含义 执行do while语句中的内嵌语句 直到表达式为假 0 才跳出循环 执行过程 至少执行一次 8 三 do while语句 sum 55 举例 求1 10的累加和 includevoidmain inti sum i 1 sum 0 do sum sum i i while i 10 printf sum 5d n sum 思考 1 如果去掉循环体中的大括号 执行过程将会怎样变化 2 在循环体中 使循环条件趋向于不满足 假 的语句是哪条 9 举例 while和do while循环的比较 includevoidmain inti sum sum 0 scanf d includevoidmain inti sum sum 0 scanf d sum 55 输出 sum 55 sum 0 输出 sum 11 此程序的功能 什么情况下两者结果相同 10 格式 for 表达式1 表达式2 表达式3 循环体语句 四 for语句 P119 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 执行过程 1 先求解表达式1 2 求解表达式2 若其值为真 则执行循环体语句 然后执行第 3 步 若为假 则结束循环 转到第 5 步 3 求解表达式3 4 转向步骤 2 5 循环结束 执行for语句下面的一个语句 11 sum 55 举例 求1 10的累加和 includevoidmain inti sum sum 0 for i 1 i 10 i sum sum i printf sum 5d n sum 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 12 for 表达式1 表达式2 表达式3 语句 四 for语句 说明 三个表达式都可以省略 13 四 for语句 说明 1 i 1 for i 10 i sum sum i 2 for i 1 i sum sum i 3 for i 1 i 10 sum sum i i for i 1 i 10 i sum sum i 表达式可以省略 但其后的分号不可以省略 没有循环结束条件 构成了死循环 for i 1 i 10 i sum sum i 14 四 for语句 说明 4 5 for sum sum i 6 表达式1和表达式3可以是与循环变量无关的表达式 for i 10 sum sum i i 7 表达式2一般是关系表达式 也可以是数值或字符表达式 while i 10 sum sum i i while 1 sum sum i 表达式1和表达式3可以同时省略 此时等同于while语句 for sum 0 i 1 i 100 i sum sum i 建议 for语句中只放与循环控制有关的语句 15 格式 while 表达式1 if 表达式2 break 五 break continue语句 举例 sum 0 for i 1 i5 break sum sum i printf sum 5d n sum while 表达式1 if 表达式2 conitue 结束整个循环 结束本次循环 sum 0 for i 1 i 10 i if i 5 continue sum sum i printf sum 5d n sum 循环举例 1 例5 3募集慈善基金10000元 有若干人捐款 每输入一个人的捐款数后 计算机就输出当时的捐款总和 当某一次输入捐款数后 总和达到或超过10000元时 即宣告结束 输出最后的累加值 16 includevoidmain floatamount sum 0 do scanf f 17 1000 1850 1500 2600 2500 1200 sum 10650 00 循环举例 2 18 例5 4在象棋的棋盘第1个格子中放1粒麦子 第2个格子中放2粒麦子 第3个格子中放4粒麦子 以后按此比例每一格加一倍 一直放到第64格 象棋的棋盘是8 8 64格 共放多少 麦子总粒数 1 2 22 23 2631m3 1 42 108粒 循环举例 3 例5 7输入一个班全体学生的成绩 把不及格的学生成绩输出 并求及格学生的平均成绩 19 20 六 几种循环语句的比较 说明 1 三种循环语句在处理循环问题时 一般可以相互替代 2 对于循环次数固定的问题 用for语句实现比较简单 3 对于循环次数不确定的问题 可用while语句或do while语句实现 4 while语句 先判断 后执行 do while语句 先执行 后判断 21 概念 一个循环体内又包含另一个完整的循环结构 称为循环嵌套 四 循环嵌套 举例 打印乘法口诀表 includevoidmain inti j for j 1 j 10 j for i 1 i j i printf 2d 2d 3d i j i j printf n 举例 穷举法 百钱买百鸡 公元5世纪末 我国古代数学家张丘建在他撰写的 算经 中提出了这样一个问题 鸡翁一 值钱五 鸡母一 值钱三 鸡雏三 值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 穷举法 针对问题所有的可能一一查看是否符合条件 22 举例 递推法 兔子问题 有一对兔子 从出生后第3个月起 每个月都生一对兔子 小兔子长到第三个月后每个月又生一对兔子 假如兔子都不死 那么在一年之后一共会有多少对兔子 20个月之后又有多少对兔子 斐波那契数列找到递推规律 23 24 思考1 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p printf 请输入三角形的三边 scanf f f f 考虑输入的三边不构成三角形 应该怎么改 25 思考2 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p printf 请输入三角形得三边 scanf f f f elseprintf 不构成三角形 希望求多个三角形的面积 而不是每求一次退出 怎么办 26 思考3 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p do printf 请输入三角形得三边 scanf f f f 我想退出 怎么办 27 include includevoidmain floata b c s p charyes no do printf 请输入三角形得三边 scanf f f f 思考4 怎么没有起作用 调试看看吧 28 include includevoidmain floata b c s p charyes no do printf 请输入三角形得三边 scanf f f f 思考5 yes no getchar yes no getchar do scanf c 29 124369481216 includevoidmain inti j for i 1 i 4 i for j 1 j i j printf 4d i j printf n 读程序写结果1 第六章循环结构程序设计 30 includevoidmain inti j for i 1 i 4 i for j 1 j 4 i j printf 4c for j 5 i j 4 j printf 4d i j printf n 读程序写结果2 4686912481216 第六章循环结构程序设计 31 includevoidmain inti j for i 1 i 4 i for j 1 j 5 i j printf 4d i j printf n 请同学们写出以下程序的输出结果 1234246364 第六章循环结构程序设计 includevoidmain inti j for i 1 i 4 i for j 1 j i 1 j printf 4c for j i j 4 j printf 4d i j printf n 123446891216 32 例1 利用公式 4 1 1 3 1 5 1 7 求 的近似值 直到某一项的绝对值小于10 6为止 提示 fabs t 求浮点数t的绝对值 五 程序举例 include includevoidmain ints floatn t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 思考 使用哪一种循环控制语句 pi 1 1 3 输出4 pis 1 1 n 1 3 5 7 t s n 33 例2 求Fibonacci数列的前40个数 11235813213455 includevoidmain longintf1 f2 inti f1 1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 特点 第1 2个数为1 1 从第三个数开始 该数是其前面两个数之和 f1 1 n 1 f2 1 n 2 fn fn 1 fn 2 n 3 P128 1123581321345589144 34 例3 判断m是否为素数 素数 质数 只能被1和它本身整除的数 判别方法 57 若2 56之间的每一个数都除不开56 则57为素数 否则57不是素数 m k m 1 i 2 k 若每一个i的值都除不开m 则m为素数 否则m不是素数 flag 1 k m 1 for i 2 i k i if m i 0 flag 0 if flag 1 printf yes elseprintf no k m 1 for i 2 i k 1 printf yes elseprintf no k m 1 k m 2 m 1 2 k sqrt m sqrt m 1 第六章循环结构程序设计 35

温馨提示

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

评论

0/150

提交评论