




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章判断与循环 P141 计算机运算速度快 最适宜于重复性的工作 真 假 循环程序组成部分 1 设置循环初值 即循环开始前的值 2 将需要反复执行的部分设置为循环体 3 设置测试条件 即循环的条件 满足条件时循环 4 循环体每执行一次后 改变某些变量的值使循环趋于结束 否则将成无限循环 一 实现循环结构的控制语句while语句 do while语句 for语句二 循环嵌套 循环中有循环 三 循环结构程序举例 主要内容 一 实现循环结构的控制语句 一 while语句 二 do while语句 三 for语句 四 break continue语句 五 几种循环的比较 例1 计算1 2 3 99 100 即求自然数1 100之和 分析 声明一个变量 sum 作为 容器 存放加法的和 并设置初值为0 1 将1加入sum2 将2加入sum 99 将99加入sum100 将100加入sum最后输出sum的值 步骤1 100 描述的是相同的动作 可以描述为一个重复的过程 将n 初值为1 加入sumn的值增加1 求解过程 声明一个变量sum 初值为0 设置变量n表示每次加的值 初值为1 将n加入sum n的值增加1 当n100时 执行步骤6 输出sum的值 格式 while 表达式 循环体语句 含义 当表达式为真 非0值 时 执行while中的循环体语句 执行过程 一 while语句 表示执行循环的条件 sum 5050 实现1 求1 100的累加和 用while实现 voidmain intn sum n 1 sum 0 while n 100 sum sum n n printf sum d n sum 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 设置初始值设置循环条件 循环语句 循环变量改变 voidmain intn sum n 1 sum 0 while n 100 sum sum n n printf sum d n sum 编程步骤 设置初始值设置循环条件 循环语句 循环变量改变 格式 do 循环体语句 while 表达式 含义 表达式为真 非0 时执行循环体语句 只不过是先执行一次 执行过程 至少执行一次 二 do while语句 表示执行循环的条件 sum 5050 实现2 求1 100的累加和 用do while实现 voidmain intn sum n 1 sum 0 do sum sum n n while n 100 printf sum d n sum 格式 for 表达式1 表达式2 表达式3 循环体语句 for 循环变量赋初值 循环条件 循环变量改变 循环体语句 执行过程 1 先求解表达式1 2 求解表达式2 若其值为真 则执行循环体语句 然后执行第 3 步 若为假 则结束循环 转到第 5 步 3 求解表达式3 4 转向步骤 2 5 循环结束 执行for语句下面的一个语句 三 for语句 sum 5050 例3 求1 100的累加和 用for循环实现 voidmain intn sum sum 0 for n 1 n 100 n sum sum n printf sum 5d n sum 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 注意 1 循环体如果包含一个以上的语句 必须使用 括起来 2 在循环中 必须有使循环条件趋向于不满足 假 的语句 否则成为死循环无法结束 3 循环语法中的表达式部分可以是任意表达式 举例 while和do while循环的比较 voidmain inti sum 0 scanf d voidmain inti sum 0 scanf d 输入 1 输入 11 程序1 sum 55 输出 程序2 sum 55 程序1 sum 0 输出 程序2 sum 11 什么情况下两者结果相同 结论 当循环体内容一样时 如果循环条件第一次为true时 两种循环结构的结果一样 练习 执行以下程序的输出显示是 inti x y i x y 0 do i if i 2 0 x x i y y i while i 5 printf x d y d n x y 答案是 x 9y 15 1循环 i 1if true 因为1 2 1 x 1y 12循环 i 2if false y 33循环 i 3if true x 4y 64循环 i 4if false y 105循环 i 5if true x 9y 15 例6 1 书上143页 计算一任意数的n次方 即y xn n为一非负整数 main intcount n floatx y printf Enterthevaluesofxandn scanf f d 四 break continue语句 结束整个循环 执行循环后语句 continue结束本次循环 开始新的循环 main intn sum sum 0 n 1 for sum i n if n 100 break printf sum 5d n sum main intn sum x for sum 0 n 1 n 100 n scanf d 当从键盘上输入一个0或负数的时候 continue将提前结束本次循环 即跳过sum x 举例 for i 1 i 10 i if i 5 break printf i 5d n i for i 1 i 10 i if i 5 continue printf i 5d n i i 11 i 5 二 循环嵌套 1 while while 3 for for 5 for while 2 do do while while 4 while do while 6 do for while 作业 6 4数列123581321 称为斐波纳契数列 请编写一个使用循环的程序 计算并显示前m个斐波纳契数 提示 从数列的第三个数开始 每个数是前两个数之和 例 读程序 指出运行结果 voidmain inti a 0 for i 1 i 5 i do i a while i 3 printf a d i d n a i printf end n 答案 a 2 i 3a 3 i 5end 最小成本 书上164页 三 程序举例 某单位的运营成本由C1和C2两部分组成 它们可用参数p的函数来表示 C1 30 8pC2 10 p2参数p的范围为0 10 请确定当运营成本最小时的p值 精确度为 0 1 总成本 C1 C2 40 8p p2 includemain floatp cost p1 cost1 cost1存储当前最小的成本for p 0 p 10 p p 0 1 cost 40 8 p p p 最新计算的成本值if p 0 cost1 cost elseif cost cost1 cost1 cost p1 p printf nMINIMUMCOST 2fATp 1f n cost1 p1 最小成本解法2 main floatp cost p1 cost1 for p 0 p cost1 break cost1 cost p1 p p p p1 2 0 cost 40 8 p p p printf nMINIMUMCOST 2fATp 1f n cost p 例 输入一个正整数m 判断其是否为素数 只能被1和它本身整除的数为素数 判别方法 57 若57除以2 56之间的每一个数都不能整除 则57为素数 否则57不是素数 判断m k m 1 i 2 k 若m除以每一个i的值都不能整除 则m为素数 否则m不是素数 voidmain intm k i flag scanf d k m 1 k m 2 k sqrt m 实现1 break flag表示是否为素数 1 是 0 否 includevoidmain intm k i scanf d 实现2 例 百钱买百鸡公元前五世纪 我国古代数学家张丘建在 算经 一书中提出 百钱买百鸡 问题 鸡翁一值钱五 鸡母一值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 基本思路 这是一个不定方程的问题 穷举法 穷举法是编程中常用到的一种方法 对可能是解的众多候选解按某种顺序进行逐一枚举和检验 并从中找出那些符合要求的候选解作为问题的解 voidmain intcocks hens chicks for cocks 0 cocks 20 cocks for hens 0 hens 33 hens chicks 100 cocks hens if 5 cocks 3 hens chicks 3 0 100 0 printf d d d n cocks hens chicks 运行结果 02575418788118112484 例 每个苹果0 8元 第一天买2个苹果 第二天开始 每天买前一天的2倍 直到某天 当天 购买苹果的个数达到不超过100的最大值 编写程序求平均每天花多少钱 提示 给出如下变量 buy 购买的个数 初值为2 total 购买的总和 初值为0 还没开始买 day 已购买的天数 初值为0 avg 平均每天花的钱数 可以使用while语句 循环继续的条件是buy 100 voidmain intbuy 2 day 0 total 0 floatavg while buy 100 total total buy day buy 2 avg total 0 8 day printf 2f n avg 书上其他例题自己看 抓交通肇事犯一辆卡车违反交通规则 撞人后逃跑 现场有三人目击事件 但都没有记住车号 只记下车号的一些特征 甲说 牌照的前两位数字是相同的 乙说 牌照的后两位数字是相同的 但与前两位不同 丙是数学家 他说 四位的车号刚好是一个整数的平方 请根据以上线索求出车号 问题分析与算法设计按照题目的要求造出一个前两位数相同 后两位数相同且相互间又不同的整数 然后判断该整数是否是另一个整数的平方 总结 所学的控制语句 if else switchwhile do while for continuebreakgoto 6 13请编写一个程序来计算欧拉数e的值 该数用作自然对数的底 计算公式如下 e 1 1 1 1 2 1 3 1 n 请使用一种合适的循环结构 当连续两个e值之差小于0 00001时循环终止 6 15请编写一个程序 给定原始价值 折旧率和已使用的年限 计算出报废价值 补充 36块砖 36人搬 男搬4 女搬3 两个小孩抬一砖 要求一次全搬完 问男 女 小孩需若干 作业 作业 输入10个数 计算它们的平均值 2 猜数游戏 系统随机产生一个数 用户猜并输入所猜数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能视频剪辑器创新创业项目商业计划书
- 2025年环境影响评价公众参与机制在环境保护法律法规执行中的应用报告
- 现在进行式的课件
- 现代高效农业知识培训会课件
- 现代文阅读鉴赏课件
- 2025年教师资格证考试(中学)教育知识与能力冲刺模拟试题汇编解析版
- 2026届福建省泉州市南安第一中学化学高二上期中调研模拟试题含解析
- 2025年高考英语阅读理解专项训练试卷:冲刺押题及错题解析
- 新坐标英语2010年度市场工作总结与2011年工作计划
- 测量员岗位职责说明书
- 2025年电信人工智能学习考试题库(含答案)
- 机器人焊接技术与应用考核试卷
- 名著《红岩》三年中考真题及典型模拟题训练(解析版)
- 《会计职业道德》第2版 课件 第一章 道德和职业道德概述
- 开学第一课 教学设计-2024-2025学年七年级上学期道德与法治部编版
- 危险性较大的分部分项工程安全监理实施细则
- 《企业的可持续发展》课件
- 咨询服务承揽合同范本
- 施工期间交通导行方案
- 《酒店客户关系管理 》课件-项目三 酒店客户关系管理制度
- 八年级学生入学教育课件
评论
0/150
提交评论