




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 章循环结构程序设计 程序的基本结构 顺序结构选择结构循环结构 循环的概念 在循环条件的范围内反复执行相同的循环体称循环程序设计 循环结构的特点 循环体中的语句 在条件满足的情况下 可反复执行 书写while循环语句的三个步骤 while循环语句 初始化变量 sum sum ii i 1 i 10 真 i 1sum 0 输出sum 循环条件 循环体 假 用1 2 3 10的程序流程图来理解三个步骤 编程实现1 2 3 10 includevoidmain inti 1 sum 0 while i 10 sum sum i i i 1 printf d sum 编程错误分析 1 初始化变量2 循环体 3 的误用 inti sum 写出正确的循环条件 循环体内应有使循环趋于结束的语句 书写while循环语句的注意事项 二 while循环语句的应用 includevoidmain inth 12 f 32 y 0 while 2 h f h f y printf 经过 d年 父亲的年龄是小红的二倍 n y 解方程 32 y 2 12 y 程序分析 h 小红年龄f 父亲年龄y 需要求解的多少年每过一年h f y 循环结束条件 f与2 h相等 例1 一个简单的数学问题小红今年12岁 父亲比她大20岁 问多少年之后 父亲的年龄是小红的两倍 当结束条件为和大于2000时 如何表示 while sum 2000 求输入的数字之和 当输入 1作为结束条件时 如何表示 scanf d 循环条件 5 3dowhile语句构成的循环结构 一般形式 循环变量的初始值 do循环体语句 while 循环条件表达式 执行流程 实例 用do while循环语句实现求 includemain inti sum 0 i 1 do sum sum i i i 1 while i 100 printf d sum 例 源程序 includevoidmain intsum 0 i scanf d 例 while和dowhile循环比较 源程序 includevoidmain intsum 0 i scanf d do while同while语句的重要区别 练习1 观察以下程序运行结果并分析 main intn 0 while n 3 printf nis d n n n printf That sallthisprgramdoes n 在使用while时 只有位于判断条件之后的单个语句 简单语句或复合语句 才是循环的部分 练习2 观察以下程序运行结果并分析 main intn 0 while n 3 printf nis d n n printf That sallthisprogramdoes n 循环在判断条件后的第一个简单或复合语句处就结束了 练习3 观察以下程序运行结果并分析 voidmain intnum intsum l printf 请输入一个整数求累加和 输入1时终止 n scanf d 无限循环 5 4for语句 一般形式执行流程 for expr1 expr2 expr3 循环体语句 for语句的一般应用形式 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 includemain inti sum 0 for i 1 i 100 i sum i printf d sum 例用for循环求 for语句的几点说明for语句中expr1 expr2 expr3类型任意 都可省略 但分号 不可省无限循环 for for语句可以转换成while结构语句 i 1 for i 100 i sum sum i for i 1 i sum sum i for sum 0 i 1 i 100 sum sum i i i 1 for i 100 sum sum i i for 语句相当于while 1 语句 expr1 while expr2 循环体语句 expr3 表达式1和表达式3可以是一个简单的表达式 也可以是逗号表达式 即包含一个以上的简单表达式 中间用逗号间隔 如 for sum 0 i 1 i 100 i sum sum i 或for i 0 j 100 i j i j k i j for i 1 i 100 i sum sum i i 相当于for i 1 i 100 i i 2 sum sum i 解1 includemain inti 0 for i 0 i 10 i putchar a i 运行结果 abcdefghij 解2 includemain inti 0 for i 10 i putchar a i 解3 includemain inti 0 for i 10 putchar a i 解4 includemain inti 0 for i 10 putchar a i i 例从a显示到j 例 求 即计算 main inti s n s 1 printf Entern scanf d 程序结果分析 includevoidmain inty 9 for y 0 y if y 3 0 printf d y 1 循环变量 x i t s2 变化规律 t t x x 2 i 2 i 1 3 循环条件 fabs t 1e 7 利用如下公式求sin x 近似值 直到最后一项的绝对值小于10 7 include includevoidmain inti doublex t s scanf lf 5 5循环的嵌套 三种循环可互相嵌套 层数不限外层循环可包含两个以上内循环 但不能相互交叉嵌套循环的执行流程 1 while while 2 do do while while 3 while do while 4 for do while while main inti j k for i 0 i 2 i for j 0 j 2 j for k 0 k 2 k printf d d d n i j k 例 运行结果 第1行一个 第2行二个 第N行N个 inti j n printf 请输入要打印的行数 scanf d 换行 for j 1 j n i 1 j 第1行 4个 接着1个 换行第2行 3个 接着3个 换行第3行 2个 接着5个 换行第4行 1个 接着7个 换行第5行 0个 接着9个 换行 每行 的个数 5 i每行 的个数 2 i 1每次循环要做三件事 先打印 5 i 个 后 接着打印 2 i 1 个 再换行 for inti 1 i 5 i for j 1 j 5 i j printf 打印若干个 for k 1 k 2 i 1 k printf 打印若干个 printf n 换行 includevoidmain inti j k for i 1 i 5 i for j 1 j 5 i j printf for k 1 k 2 i 1 k printf printf n for i 1 i 4 i for j 1 j i j printf for k 1 k 9 2 i k printf printf n 多重循环 九九乘法表 1 for i 1 i 1 i printf 1 d 2d i 1 i printf n for i 1 i 2 i printf 2 d 2d i 2 i printf n for i 1 i n i printf n d 2d i n i printf n for n 1 n 9 n for i 1 i n i printf d d 2d n i n i printf n 举一反三 for i 1 i i printf 1 d 2d i 1 i printf n for i 2 i 9 i printf 2 d 2d i 2 i printf n for i n i 9 i printf n d 2d i n i printf n for n 1 n 9 n for i n i 9 i printf n d 2d n i n i printf n 上机题 打印如下图形 练习 分析程序运行结果 inti 1 a 0 for i 5 i do i a while i 3 i printf d d n a i 7 5 6break语句和continue语句 break语句功能 在循环语句和switch语句中 终止并跳出循环体或开关体 说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 例break举例 输出圆面积 面积大于100时停止 definePI3 14159main intr floatarea for r 1 r100 break printf r d area 2f n r area 例break举例 小写字母转换成大写字母 直至输入非小写字母 includemain inti j charc while 1 c getchar if c a continue语句功能 结束本次循环 跳过循环体中尚未执行的语句 进行下一次是否执行循环体的判断仅用于循环语句中 continue举例 输出100以内不能被7整除的数 main intn for n 1 n 100 n if n 7 0 continue printf d n defineM10voidmain intnum sum 0 printf inputnumber n for inti 0 i M i scanf d defineM10voidmain intnum sum 0 printf inputnumber n for inti 0 i M i scanf d 求10个数之和 遇负数终止 求10个中的正数之和 includevoidmain inti 0 s 0 for if i 3 i 5 continue if i 6 break i s i printf s d s 思考题 快速算法 判断它能否被2到sqrt m 之间的数整除 若不能则是素数 intm printf pleaseinputanumber n scanf d 输出 判断素数的快速算法 输入检测问题 求输入的成绩之和 以输入0作为结束条件 对输入的数据要进行检测 includevoidmain intn sum 0 while 1 printf 请输入成绩是 n scanf d 上机题 求输入的成绩之和 最高成绩 最低成绩 平均成绩 以输入0作为结束条件 对输入的数据要进行检测 求sum a aa aaa aaa a的值 a和n由用户从键盘上给出 例如 a 4 n 5sum 4 44 444 4444 44444 49380444 4 100 4 101 4 102x 0 for j 0 j 3 j x x a pow 10 j for i 1 i n i x 0 for j 0 j i j x x a pow 10 j sum sum x 如何使程序更有效 改进 sum 4 44 444 4444 44444 每一项不必重新计算 它是前一项的10倍加ax 0 for i 1 i n i x x 10 a sum sum x for i 1 i n i x 0 for j 0 j i j x x a pow 10 j sum sum x 对比 上机题 汽车里程表上的读数是95859 7小时之后里程表的读数是一个对称数 最大是5位数 问汽车的速度 是一个整数 解题思路 判断95859到99999之间所有数中哪个是对称数如果是 它与95859的差能否被7整除 voidmain ints a b c d e f s为读数 a为万位 b为千位 c为百位 d为十位 e为个位 f为差值for s 95860 s 99999 s a s 10000 b s a 10000 1000 c s a 10000 b 1000 100 d s a 10000 b 1000 c 100 10 e s a 10000 b 1000 c 100 10 d f s 95859 if a e 循环次数为 99999 95859 4140 次 改进 可以利用对称数9585996069千位在6 9之间 百位在0 9之间voidmain ints i j for i 6 i 9 i for j 0 j 9 j s 90000 i 1000 j 100 i 10 9 95859 if s 7 0printf 速度为 d n s 7 循环次数为 9 6 1 10次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字的由来和演变
- 云南省曲靖市民族中学2024-2025学年高一上学期期中检测化学试卷(含答案)
- 内蒙古鄂尔多斯市西四旗2024-2025学年高一下学期7月期末考试生物试卷(含答案)
- 福建省漳州第一中学2024-2025学年高二下学期期末考试化学试题(含答案)
- 年眼科护士工作总结
- 虚拟现实技术在娱乐产业的运用
- 餐饮连锁经营模式成功案例分享
- 2025年桥梁维护养护合同
- 2025餐馆股份转让协议合同样本
- 永顺县应急知识培训课件学校
- 教师副高职称答辩题库【3篇】
- 一只窝囊的大老虎第二课时
- 房屋建筑工程监理规划(范本-附带监理细则内容)
- 公司境外佣金业务管理办法
- 规章制度编写格式规范
- 屏幕尺寸换算表
- 金属技术监督管理制度
- 建筑行业材料员培训课件
- 佐贺的超级阿嬷亲子阅读单
- 企业工会制度大全
- NB-T 10316-2019 风电场动态无功补偿装置并网性能测试规范
评论
0/150
提交评论