第六章 循环控制.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdio.h void main( ) { int sum = 0 ; int n = 0 ; while ( n = 100) { sum = sum + n ; n += 2 ; } printf(“sum = %d\n”, sum) ; return ; } continue 语句:例 例:编程计算1~100之间所有偶数的和。 for ( ; n = 100 ; ) { sum = sum + n ; n = n + 2 ; } 用while语句 实现 用for语句 实现 for ( ; n = 100 ; n ++) { if (n % 2 != 0) continue ; sum = sum + n ; } 用for语句和continue实现 6.9 循环结构程序举例 程序举例:题目及分析 例:课本p124 例6.6 用π/4 = 1 – 1/3 + 1/5 – 1/7 + … 公式求π的近似 值,直到最后一项的绝对值小于1e-6为止。 分析: 题目需要计算累加,应该用到循环语句。 用那种循环语句来控制呢?根据题目的要求,要累计到最后一项数据的绝对值小于某个值的时候结束。也就是说,我们无法知道要累计多少个数据,只知道什么时候结束累计,因此应该用while或do…while比较合适。 如何解决累加的数据符号在交替变化的问题?可以设置一个变量,专门用于保存数据的符号,根据循环次数的不同,依次在正负之间转换。 如何求一个数据的绝对值?可以调用数学库函数,或自己编写代码求绝对值。 程序举例 :实现方案 #include stdio.h #include math.h void main( ) { float t = 1, pi = 0.0; float n = 1, sign = 1; while (fabs(t) 1e-6) { pi = pi + t; n = n + 2; sign = - sign; t = sign / n ; } pi = pi * 4 ; printf(pi = %10.6f\n, pi); } 因为用到数学库函数,所以要包含相应的头文件 用于保存 符号的变量 fabs是用于求实型数据绝对值的函数 每循环一次,符号就变化一次 求出下一个要累计的数据 1 对兔子,3个月起,每月生1 对兔子,在讨论的时间内兔子总活着 n个月后有多少对兔子 1月 1 2月 1 3月 1 1 4月 1 1 1 5月 1 1 1 1 1 6月 1 1 1 1 1 1 1 1 老兔 一胎小兔 一小兔的一小兔 二小兔的一小兔 一小兔的二小兔 二胎小兔 三胎小兔 四胎小兔 f1= 1 , f2 = 1 ; fn = fn-1 + fn-2 程序举例 :题目及分析 程序举例 :题目及分析 例:课本p125 例6.7 求 Fibonacci 数列的前40个数。该数列满足递推公式 f1= 1 , f2 = 1 ; fn = fn-1 + fn-2 分析: 题目需要计算累加,应该用到循环语句。 用那种循环语句来控制呢?根据题目考虑用for语句比较合适。 怎么循环?我们把前40个数的递推过程写一下: f1=1 f2=1 f3=f2+f1 f4=f3+f2 f5=f4+f3 …… 是否需要40个变量 可见,在已知f1和f2的时候,从第3个数据开始,每个数据都只与前面相邻的两个数据有关。 比如:当根据 f1+f2=f3 求出 f3 后,再求 f4 时,原来 f1 变量中的数据不再有用,所以如果把 f2 的值放到 f1 中,把 f3 的值放到 f2 中,那么计算 f4 的表达式 f3+f2 就变成了 f2+f1 ,结果又可以放到 f3 中,依此类推就形成了循环。 程序举例 :算法1 f3 = f2 + f1 f3 = f2 f1 (f3) (f2) + f4 = f3 + f2 (f4) f3 = f2 f1 + f5 = f4 + f3 (f4) (f3) (f5) 第1次循环: 第2次循环: 第3次循环: 算法1:每循环一次求出一个新的数据 程序举例 :实现方案一 /* 算法1:循环一次输出一个数据 */ #include stdio.h void main() { lon

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档