嵌套循环和循环综合.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌套循环和循环综合

回顾 循环的分类 当型循环 直到型循环 循环的3种基本表示 循环结构控制语句3—for 格式: for(表达式1;表达式2;表达式3) { 循环体 } 表达式1一般为循环变量赋初值,可以为任何表达式类型 表达式2用于判断循环是否结束 表达式3实现循环变量的累加。 3个表达式都可以省略,但分号不能省。 表达式2省略,代表循环条件永远为真 主要算法思想 穷举法 特点:列举指定范围类所有可能的情况进行计算 应用:高斯问题 递推法 特点:根据前面n-1项的值,计算第n项的值 应用:累加、累乘 迭代法(辗转法) 特点:不断用变量的旧值递推新值的过程 应用:辗转相除法求最大公约数、更相减损术求最大公约数 主要内容 嵌套循环 注意循环变量初值的设置 设计结构良好的程序 减少使用break、continue、goto 学会使用标志变量flag 循环综合应用 打印下列图案 图案一 图案二 ***** * ***** *** ***** ***** ***** ******* 嵌套循环 打印图案一 void main() { int i, j; char star = *; for(i=1;i=4;i++) { for(j=1;j=4;j++) { printf(%c, star); } printf(\n); } } 打印图案二 void main() { int i,j; /*内外层循环变量保持不同名*/ char space = ,star=*; ? for(i=1;i=4;i++) { if(i4) { printf(%*c,4-i,space); } for(j=1;j=2*i-1;j++) { printf(%c,star); } printf(\n); } } 使用嵌套的循环体时,应注意以下问题 在嵌套的各层循环体中,使用复合语句(即用一对大花括号将循环体语句括起来)保证逻辑上的正确性 内层和外层循环控制变量不应同名,以免造成混乱 嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性 循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环 马克思手稿中的数学问题 有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令,每个男人各花3先令、每个女人各花2先令,每个小孩各花1先令,问共有几个男人、女人、小孩 编写结构良好的程序 采用“自顶向下、逐步求精” 的思想 结构化程序的特点: 只有一个入口; 只有一个出口; 无死语句,即不存在永远都执行不到的语句; 无死循环,即不存在永远都执行不完的循环。 示例:判断某数是否是素数 素数问题 从键盘上输入一个数,编程判断该数是否是素数。如果是,输出“Yes!”,否则,输出“No!” 分析 从键盘上键入一个数m 判断该数的正负,如果是负数,则退出程序 计算k=sqrt(m) 循环变量i从2变化到k,依次检查m%i是否为0 若m%i为0,则判定m不是素数,中止循环,否则遍历所有i值后退出循环,这时判定m是素数 解法一 #include math.h #include stdio.h #include stdlib.h void main() { int m, i, k; printf(Please enter a number:); scanf(“ %d ”, m); /*从键盘输入一个正整数*/ if(m0) { printf(“ m不能为负数!\n”); exit(0); } k = sqrt(m); /*计算m的平方根*/ for (i=2; i=k; i++) /* i从2变化到k,依次检查m%i是否为0*/ { /*若m%i为0,则终止对其余

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档