第五章循环制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 循环控制 5.1 概述 在许多问题中需要用到循环控制。例如,要输入全校学生成绩;求若干个数之和;求阶乘等,几乎所有实用的程序都包含循环。循环结构是结构化程序三种基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。因此熟练掌握选择结构和循环结构的概念及使用是程序设计的最基本的要求。 #include stdio.h main() {char c; loop: c=getchar(); if(c==\n) goto end; putchar(c); goto loop; end: printf(The end\n); }(1)循环体如果包含一个以上的语句, 应该用花括弧括起来,以复合语句形式出现。 如果不加花括弧,则while语句的范围只到while后面第一个分号处。 (2)在循环体中应有使循环趋向结束的语句。如本句中的i++,通过i值的变化是i=100为假而结束循环。 #include stdio.h main() { float x; scanf( %f ,x); while(x!=0) { if(x0) printf( + );elseprintf( - ); scanf( %f ,x); } 注意1、while (表达式)后面没有分号。 2、表达式在判断前,必须要有明确的值。 [例5.4] while和do一while循环的比较。1)main()(2) main(){int sum=0,i;{int sum=0,i;scanf(”%d”,&i);scanf(”%d”,i);while(i<=10)do{sum=sum十i;{ sum=sum十i;i++;i++; }}while(i=10);printf(“%d”,sum);}printf(“%d”,sum);} 例如:用do-while语句编写程序统计从键盘输入的一行非空字符的个数(以回车键作为输入结束标记)。 #include stdio.h main() {char ch; int num=0; ch=getchar(); do {num++; ch= getchar(); }while(ch!=\n); printf(num=%d\n,num); 4.可以省略表达式1和表达式3,只有表达式2,即只给循环条件。如:i=1;sum=0; for(;i<=100;) {sum=sum+i;i++;} 相当于: i=1;sum=0; while (i=100) { sum=sum+i;i++;} 6.表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其它表达式。如 for (sum=0; i<=100; i++)sum=sum+i; 表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式即包含一个以上的简单表达式,中间用逗号间隔。 如:for(sum=0,i=1;i=100;i++) sum=sum+i; 或 for(i=0,j=100;i=j;i++,j--) k=i+j ;7.表达式2一般是关系表达式或逻辑表达式 , 但也可以是数值表达式或字符表达式,只要其值为非零就执行循环体 例: 求累乘积。如:1×2×3×...×100 (累乘器问题) 基本方法 (1)给累乘器赋初值,一般为1; (2)用循环语句实现累乘; for(循环变量赋初值;循环条件;循环变量改变规律) (3)循环体设计。 累乘器当前值=累乘器原值*循环变量当前值; main() { double s=1; int k; for(k=1;k=100;k++) s=s*k; printf( s=%lf ,s); } 例如:分析程序运行结果 main() {int i,j,x=0; for(i=0;i2;i++) {for(j=0;j=3;j++)x++;} printf(“x=%d\n”,x); } main() { int s=0,t,i,j; for(i=1;i=3;i++){ t=1;for(j=1;j=2*i-1;j++)t=t*j;s=s+t;} printf(“%d”,s); } main() { int i=7,sum=0; while (i10){sum=sum+i;i++;if(sum10)continue; //if(sum10)break;}printf(sum=%d,sum); main() { long int f1,f2; int i; f1=1;f2=1; for(i=1;i=20;i++) {printf(“%12ld %12ld “,f1

文档评论(0)

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

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

1亿VIP精品文档

相关文档