第5章 环结构程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 本章要求: 掌握for循环结构。 掌握while和do while循环结构。 了解循环的嵌套。 do-while语句的简单应用 【例5.3】用辗转相除法求m和n的最大公约数 最大公约数:几个数公有的约数叫做这几个数的公约数,其中最大的一个叫最大公约数.(几个数字能最大约去的数字)能够整除一个数的就是这个数的约数. 最小公倍数:几个数公有的倍数叫几个数的公倍数.能够被除数一个数整除的数是这个数的倍数. 算法和程序: main( ) { int m,n,r; scanf(%d, %d,m,n); if (mn){ r=m; m=n; n=r; } do{ r=m%n;m=n;n=r;}while(r!=0); printf(%d\n,m); } 课堂练习: 1.以下程序段的输出结果是#include stdio.hvoid main(){int num=0;while(num=2){num++;printf(“%d\n”,num); }} 2.以下程序段的输出结果是int i=0,sum=1;do {sum+=i++;} while (i5);printf(“%d\n”,sum); 3.void main( ) {int a=1,b=2,c=2; int t; while(abc) { t=a; a=b; b=t; c--; } printf(“%d,%d,%d”,a,b,c); } 答案: 1,2,0 5.3 for语句 语句一般格式 for (表达式1;表达式2;表达式3)语句 for语句的算法 例如: main( ) { int i,sum; sum=0; for ( i=1; i=100; i++)sum=sum+i; printf(sum=%d\n,sum); } 省略for语句的表达式 ⑴ 表达式1、2、3全省略,即:for ( ;;) 就等同于:while (1),会无限循环(死循环) 例如: ⑴ i=1; for ( ; i=100; i++) sum+=i; ⑵ for (i=1; ; i++){ … if(i100)……} ⑶ for (i=1; i=100; ) {…i++; … } ⑷ i=1; for ( ; ; ) { … if(i100) …i++; … } 说明: 所有用 while 语句实现的循环都可以用for 语句实现。 for语句的简单应用 【例5.4】求n! ,即计算p=1×2×3×…×n的值。 程序: main( ) { int i, n; long p;p=1; printf(Enter n:); scanf(%d,n); for (i=1; i=n; i++)p = p * i; printf(p = %ld \n,p); } 熟悉几个循环语句 while (!x) x++; 当 x=0 时,执行循环体x++; 几种循环语句的比较 while和do-while语句的表达式只有一个,for语句有三个。 while 和for先判断循环条件后执行循环体,do-while语句先执行循环体后判断循环条件。 5.4 用goto语句实现循环 有兴趣的同学自学 不提倡使用goto语句 5.5 用break语句和continue语句改变循环状态 有如下三种语句实现跳转: continue语句 break语句 goto语句 在循环语句的循环体中使用,可以进行循环的流程控制 5.5.1 continue语句及应用 功能: 中断循环体的本次执行(即跳过循环体中尚未执行的语句),立即开始执行下一次循环。 例如: ⑴ int x,n=0,s=0; while (n10) { scanf(%d,x); if (x0) continue; s+=x; n++; }; 应用举例 【例5.7】把100~200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。 算法和程序 main( ) { int n,j=0; for(n=100;n=200;n++){ if (n%7!=0)continue;printf(%6d,n);j++;if (j%10==0)printf(\n);} printf( \n j=%d\n,j); } 5.5.2 循环中break的应用 功能: 利用break语句能够强迫终止本层循环,转到后续语句执行。 例如: ⑴ int x,n=0,s=0; while (n10) { scanf(%d,x); if (x0) break; s+=x; n++; };

文档评论(0)

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

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

1亿VIP精品文档

相关文档