第五章_循环资料.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习:写出下面代码的执行结果 sum=0;k=7; for( i=1; i=3; i=i+1) sum=sum +k; k=k-2; printf(“i=%d,sum=%d”,i,sum); 例:阶乘的计算 计算n!即1×2×3×…×n 分析 与1~n求和类似 积fac的初值应该为 1 思考练习: 计算下列算式 计算s=12+22+32+……+n2 输出1!,2!,3!……n! 输出21, 22, 23 ……2n 例:计算平均成绩和最高分 输入一批学生的成绩,计算并输出平均成绩和最高分 人数未知,不能确定循环次数,可以使用while语句 成绩不能出现负数,可以把输入负数作为结束 平均成绩需要知道学生人数 While语句 一般形式 While(表达式) 循环体 代码实现 While循环与for循环 for语句改写while语句 表达式1 While(表达式2) { for的循环体语句 表达式3 } 求平均分的代码 do~while循环 一般形式 do 循环体 While(表达式); 循环语句的使用 有确定的循环次数 for循环 循环次数不明确 while循环 循环体至少要执行一次 do~while循环 避免死循环 例:格里高利公式求π 利用格里高利公式求π,精确到最后一项的绝对值小于10-4,并统计共累加了多少项。 格里高利公式如下所示: 分析 先计算π/4, 再计算π 循环条件已知,没有准确的循环回数 使用while循环 使用do~while循环 使用for循环 例:统计整数位数 从键盘读入一个整数,统计该整数的位数 如输入12345,则输出5 输入-99,输出2 输入0,输出1 分析 位数确定算法 负数和相应的正数位数是一样的 可以把负数转换为正数后计算。 代码实现 break与continue关键字的使用 break关键字 结构化程序只有一个入口,一个出口 为提高效率,需要使用break switch分支语句;循环语句 continue关键字 可以改变循环结构 结束本次循环,直接跳转至条件判断 例:蜗牛爬上井 井深10米,蜗牛白天向上爬5米,晚上向下掉4米。计算爬出的天数 分析 利用循环的方式模拟蜗牛的行动 时间计算白天12小时,晚上12小时为一天。 累加距离达到10米时停止循环。 代码实现 例:数的筛选与计算 计算1~100内7的倍数以外的其他数之和 分析 1至100的数列中根据条件筛选 当判断该数为7的倍数时用continue跳过 代码实现 例:输出以下内容 分析 输出一行的语句 for ( j=1; j=10; j++ ) printf(“%3d ”,j); 输出多行的语句 for ( j=1; j=10; j++ ) printf(“%3d ”,j); for ( j=1; j=10; j++ ) printf(“%3d ”,j); for ( j=1; j=10; j++ ) printf(“%3d ”,j); 多条重复的语句 循环 for ( i=1; i=5; i++ ) for ( j=1; j=10; j++ ) printf(“%3d ”,j); 练习 使用嵌套循环的方式输出以下内容 * * * * * * * * * * 例:九九乘法表 编程实现如图式样的乘法表 分析 乘数与被乘数的取值范围是1~9 每个乘数和被乘数都需要乘一次。 按照图示格式输出 最上面的一行和最左边的一列分别是乘数与被乘数,两个乘数对应的位置是它们的积 输出时第一行是数字1~9,而下面的行则是1~9分别乘2,3,…,9的乘积 代码实现 例:求素数 求100以内的全部素数,每行输出5个 分析 素数指只能被1和自身整除的正整数,1不是素数,2是素数 判断一个数是否素数,需要依据定义 依次除2~i-1,没有被除开则可以确定该数是素数因此 本问题需对2~100以内的数使用该判断过程 代码实现 例:马克思手稿中的趣味问题 男人、女人和小孩共30人,在一家饭馆吃饭花了50先令。每个男人花3先令,每个女人花2先令,每个小孩花1先令;问其中男人、女人和小孩各有几人? 分析 建方程式,三个量x,y,z分别代表男人、女人和小孩 x+y+z=30 3x+2y+z=50 2个方程三个未知数,计算机求解可以采用穷举法 代码实现 代码优化1 方程式 x+y+z=30 (1) 3x+2y+z=50 (2) 由式2,男人花费3先令,则共费50先令的情况下,最多只有16个男人 同样可知,最多只有25个女人 代码优化2 方程式 x+y+z=30 (1) 3x+2y+z=

文档评论(0)

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

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

1亿VIP精品文档

相关文档