第05章循环控制结构讲解.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第05章循环控制结构讲解

求最大公约数的N-S流程图 习题6.1 求两个整数的最大公约数、最小公倍数(欧几里德算法) 循环结构 编程分析:求最大公约数的算法如下: 1)对于已知两数m,n,使得mn。 2)m除以n得余数r。 3)若r=0,则n为求得的最大公约数,算法结束;否则执行4)。 4)m←n,n←r,再重复执行2)。 (最小公倍数=两个整数之积/最大公约数)。 (具体代码见习题解) 求两个整数的最大公约数。(从最大公约数的定义出发) 循环结构 编程分析: 1)输入两个整数m,n; 2)比较m、n的大小,令t等于其中的较小值; 3)判断t是否同时整除m、n,是则执行步骤5,否则执行步骤4; 4)t的值递减1,重复步骤3; 5)输出t,即为m、n的最大公约数。 (最小公倍数=两个整数之积/最大公约数)。 其它控制语句 6.8.2 continue语句 作用范围:只能用在循环体中 功能:结束本次循环,转入下一次循环 条件的判断与执行。 其一般格式是: continue; 注意:本语句只结束本层本次的循环,并不跳出循环。 其它控制语句 例:计算半径为1到15的圆的面积,仅打印面积超过50的圆面积。 void main() { int r; float area; for(r=1;r=15;r++) { area=3.141593*r*r; if(area50.0) continue; printf( square=%f\n,area); } } 其它控制语句 void main() { int n; for(n=7;n=100;n++) { if (n%7!=0) continue; printf(%d ,n); } } void main() { int n; for(n=7;n=100;n++) { if (n%7==0) printf(%d ,n); } } 使用continue 不用continue break:语句只能用在switch 语句或循环语句中, 其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。 continue:结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环条件的判断与执行。应注意的是, 本语句只结束本层本次的循环,并不跳出循环。 break与continue的区别 其它控制语句 应用程序举例 #include math.h void main() { int m,i,k; scanf(%d,m); k=sqrt(m); for(i=2;i=k;i++) if(m%i==0) break; if(ik) printf(Yes\n); else printf(No\n); } 例6.8 判断一个给定的整数是否为素数 输入m k=sqrt(m); i=2; i=k m%i=0 i++ break ik Yes No 结束 Y N N Y Y N 应用程序举例 #include math.h void main() { int m,i,k; for(m=100;m=200;m++) { k=sqrt(m); for(i=2;i=k;i++) if(m%i==0) break; if(ik) printf(%d\n,m); } } 例6.9 求100~200间的全部素数 应用程序举例 穷举法 基本思想:一一列举各种可能的情况,并判断哪一种可能是符合要求 void main() {int x, y, z,n; printf( 5yun 1yun 0.5yun\n); n=0; for(x=1; x=100;x++) for(y=1;y=100;y++) for(z=1;z=100;z++) if(x+y+z==100 5*x+y+0.5*z==100) { printf(%d %d %d\n,x,y,z); n++; } printf( Total %d,n); } 例:将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要

文档评论(0)

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

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

1亿VIP精品文档

相关文档