C语言7循环结构程序设计.ppt

上传人:max****ui 文档编号:8614261 上传时间:2020-03-30 格式:PPT 页数:65 大小:405KB
返回 下载 相关 举报
C语言7循环结构程序设计.ppt_第1页
第1页 / 共65页
C语言7循环结构程序设计.ppt_第2页
第2页 / 共65页
C语言7循环结构程序设计.ppt_第3页
第3页 / 共65页
点击查看更多>>
资源描述
C语言程序设计 第7章循环结构程序设计 本章主要内容 循环的概念 算法及循环设计的步骤实现循环的语句goto语句while语句do while语句for语句break和continue语句循环嵌套循环结构程序举例 7 1循环的概念和算法 一 问题的提出 例7 1输入某班35人某门功课成绩 求平均分 已知 待求 确定处理方案 算法类型 算法步骤 35个成绩score平均成绩average Inputscoreaverage score 重复执行 循环控制 数值型 算法步骤中存在条件的约束 在特定条件的约束下使算法中的某一步或某几步被多次反复执行 循环结构的分类 1 当型循环 2 直到型循环 二 循环的概念 N S流程图 循环结构 当型循环 while语句条件P成立时反复执行A操作 直到P为假结束循环 N S流程图 循环结构 直到型循环 do while语句反复执行A操作 直到条件P为假结束循环 寻找循环体 重复操作 构造循环体 语句 循环控制 35次 Inputscoreaverage score 循环体 循环控制 35次 次数确定 计数器 m 循环控制变量 初始化 m 0 循环变量赋初值 条件 m 35 循环条件 m m 1 使循环趋于结束 N S流程图 三 解决循环问题的基本步骤 构造循环体寻找控制循环的循环变量找出控制循环变量的3个要素循环变量的初值循环的条件使循环趋于结束的部分 例7 2求1 2 3 100之和 sum 累加器初始化为0sum 1前1项累加和sum 1 2前2项累加和sum 1 2 3前3项累加和sum 1 2 3 4前4项累加和 sum 1 2 3 n 1 n前n项累加和 此为1项的累加和 此为2项的累加和 此为3项的累加和 此为n 1项的累加和 算法分析 累加和问题sum sum n 循环体 循环次数确定 用计数器充当循环变量 用n作为计数器n 1 循环变量初值 n 100 循环条件 n 使循环趋于结束的要素 递推题型 寻找递推关系 例7 3求两个数的最大公约数 方法 辗转相除法算法思想 用两个数中的大数作为被除数 小数作为除数 相除取它们的余数 如果余数不等于零 则将该余数作为除数 将上次相除时的除数作为被除数 继续取它们的余数 如果余数为零 则除数就是两个数的最大公约数 算法分析 重复执行的部分 循环体 r m nm nn r循环次数不确定 寻找其中规则变化的量 确定r为循环变量r m n 循环变量初值 r 0 循环条件 r m n 使循环趋于结束的要素 在C语言中有三种可以构成循环结构的循环语句实现结构化程序设计 1 while语句2 for语句3 do while语句4 if goto语句 实现循环的语句 7 2实现循环的语句 goto语句为无条件转移语句一般形式 goto语句标号 标号 语句 语句标号的定义规则和变量名定义相同 一 goto语句 一般在编程中限制使用goto语句 因为有可能使程序逻辑结构混乱 一般用于循环体跳转例如 i 1 loop if i 100 sum sum 1 i gotoloop 二 while语句 功能 用于实现当型循环结构一般形式 while 逻辑量 循环体语句 当逻辑量值为真的时候 执行循环体 循环体有可能一次也不执行尽量避免无限循环 如 while 1 死循环循环体内可以加入break return goto结束循环循环体内包含一个以上的语句 应该用 括起来组成复合语句 注意事项 例7 1参考程序 程序分析 通用性人数以变量表示intnumber m number 宏定义 defineN35 m N 分析m 初值与循环条件的关系 参考程序 例7 2 求1 100的累加和 三 do while循环 功能 用于实现直到型循环一般形式 do 循环体语句 while 逻辑量 先执行一次 再进行判断注意while 逻辑量 后边的 例7 3 求两个数的最大公约数 例7 4 求n sum 55 sum 55 sum 0 while和do while比较 main intsum 0 i scanf d main intsum 0 i scanf d sum 11 四 for语句 功能 用来实现当型循环一般形式 for 表达式1 表达式2 表达式3 循环体语句 执行过程 先计算表达式1计算表达式2 为真执行循环体语句 否则结束循环计算表达式3转到第二步继续执行 for 循环变量赋初值 循环条件 循环变量增量 循环体语句 例如 for i 1 i 10 i sum i 注意 for语句后边括号中的三个表达式可以省略 可是括号中的两个分号不能省略 for语句使用最多的情况 例7 5把n m之间能被3整除的数打印出来 参考程序 for语句格式补充说明 语法格式 for 表达式1 表达式2 表达式3 循环体循环体多步操作构造复合语句for语句中 间的 是格式要求表达式1 2 3均可省略表达式1省略 循环控制变量之前已初始化表达式2省略 条件非零表达式3省略 循环体内处理 不能省略 1 省略表达式1inti 1 for循环前边赋初值for i 10 i sum i 2 省略表达式2for i 1 i 一个死循环sum i 3 省略表达式3for i 1 i 10 i的值不变 也是sum i 死循环 例7 6输入一行字符 统计其中字母 数字 空格和其它字符的个数 分析 一行字符 c getchar c n 字母 c a z 或 A Z 数字 c 0 9 空格 c 统计个数 n n1 n2 n3 n4 算法设计 参考程序 五 实现循环的三种语句的比较 共同处 都包含循环的四要素不同处 在三种语句中四要素所处的位置不同 e1 While e2 e e3 e1 do e e3 while e2 for e1 e2 e3 e 7 3break和continue语句 为了使循环控制更加灵活 C语言提供了break语句和continue语句 一般格式break continue 功能break 强行结束循环 转向执行循环语句的下一条语句 continue 结束本次循环 跳过循环体其余语句 转向下次循环 说明 break能用于循环语句和switch语句中 continue只能用于循环循环嵌套时 break和continue只影响包含它们的最内层循环 与外层循环无关 break和continue break举例 例7 7判断某一个一位数是否在一个不高于四位的整数中出现过 分析 判断n m 10是否成立 循环体 寻找其中规则变化的量充当循环变量m 循环次数不确定 算法设计 参考程序 continue举例 例7 8把100 200之间的不能被3整除的数打印出来 三种循环可互相嵌套 层数不限外层循环可包含两个以上内循环 但不能相互交叉嵌套循环的执行流程 1 while while 2 do do while while 3 while do while 4 for do while while 嵌套循环的跳转禁止 从外层跳入内层跳入同层的另一循环向上跳转 7 4循环嵌套 例7 9 打印九九乘法表 1 1 11 2 22 2 41 3 32 3 63 3 91 4 42 4 83 4 124 4 161 5 52 5 103 5 154 5 205 5 251 6 62 6 123 6 184 6 245 6 306 6 361 7 72 7 143 7 214 7 285 7 356 7 427 7 491 8 82 8 163 8 244 8 325 8 406 8 487 8 568 8 641 9 92 9 183 9 274 9 365 9 456 9 547 9 638 9 729 9 81 九九乘法表 分析 行 i1 9 i 1 ii j 1 j i j 循环体 输出j i x换行 每列输出结束 输出 n 1 1 11 2 22 2 41 3 32 3 63 3 91 4 42 4 83 4 124 4 16 1 9行 第i行 1 i列 算法设计 参考程序 7 5程序举例 一 递推题型 迭代法 迭代法 迭代是一个不断用新值取代变量的旧值 或由旧值递推出变量的新值的过程 解决递推问题必须具备的条件初始条件递推 迭代 公式解题关键 寻找递推关系 例7 10求sn a aa aaa a a 其中a是一个一位数 n个a 例7 11有一个分数序列2 1 3 2 5 3 求该数列前20项的和 例7 12求 二 穷举题型 例7 13把100 200之间的素数打印出来 素数 只能被1和其自已整除的数 分析筛选法 穷举法 遍历100 200之间所有整数 判断是否符合条件素数的判断 设数N为素数 如果存在N n n 2 N 1 0则该数不是素数 穷举的基本思想是 对问题的所有可能状态一一测试 直到找到解或将全部可能状态都测试过为止 算法设计 思考n初值101n 2而不是n flag初始化的位置flag flag 1 参考程序 执行结果 D TC 22PrimeList 101103107109113121127131137139149151157163167169173179181191193197199 例7 14百钱买百鸡 百钱买百鸡 鸡公1值钱5 鸡母1值钱3 鸡雏3值钱1 问可卖鸡公 鸡母 鸡雏各几何 分析 已知 百钱 三种鸡的价钱待求 公鸡 x只 母鸡 y只 小鸡 z只确定处理方案 算法类型 统计类5x 3y z 3 100 x y z 100 算法设计 x 0 19y 0 33z 0 99总共可能符合条件的组合 20 34 100种解决问题的基本思路 把所有的可能满足条件的组合带入方程中试解 参考程序 小结 语言提供了三种循环语句 1 for语句主要用于给定循环变量初值 步长增量以及循环次数的循环结构 2 循环次数及控制条件要在循环过程中才能确定的循环可用while或do while语句 3 三种循环语句可以相互嵌套组成多重循环 循环之间可以并列但不能交叉 小结 4 可用转移语句把流程转出循环体外 但不能从外面转向循环体内 5 在循环程序中应避免出现死循环 即应保证循环变量的值在运行过程中可以得到修改 并使循环条件逐步变为假 从而结束循环 作业 P1187 3 7 4自己练习7 5 7 11 7 13 7 16画出N S图 并编写程序 写在作业本上 实验作业 验证上课和书上的例题 选出4 5道 验证7 3 7 4调试7 5 7 11 7 13 7 16在所有的实验作业中选出四 五道题 完成实验报告
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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