C语言第5章循环结构_第1页
C语言第5章循环结构_第2页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c语言第5章循环结构 c语言程序设计 第5章 循环结构程序设计 第5章 循环结构程序设计主 要 内 容 引例 while语句 do-while语句 for语句 循环的嵌套 c语言程序设计 第5章 循环结构程序设计 引例 编程计算 1+2+.+100依据已有的学问,可以用“1+2+100”来求解,但明显很繁琐。 现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依 次取1、2、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1100的累

2、计和。 依据已有的学问,单独实现每一步都不难。但是,由于需要常常使用 这种重复计算结构(称为循环结构),c语言供应了3条循环语句来 实现,以简化、并规范循环结构程序设计。在c语言中,可用以下语句实现循环: 用for语句; 用do-while语句; 用while语句。 c语言程序设计 第5章 循环结构程序设计 while语句 一般形式: while(expression) 循环体语句; 执行流程:while 假(0) expr 真(非0) 循环体 c语言程序设计 第5章 循环结构程序设计 特点:先推断表达式,后执行循环体 说明: 循环体有可能一次也不执行 循环体可为任意类型语句,若包含多条语句,

3、 应使用花括弧括起来,以复合语句形式消失。 下列状况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1) 循环体; c语言程序设计 第5章 循环结构程序设计 例5.1 用while循环求 in 1 100 循环初值 循环变量增值 #include stdio.h main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum); 循环条件sum=0+1=1 sum=1+2=3 sum=3+3=6 sum=6+4=10 sum=4950+100=5050 循

4、环终值 循环体 c语言程序设计 第5章 循环结构程序设计 例5.2 显示110的平方 #include stdio.h main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100 c语言程序设计 第5章 循环结构程序设计 dowhile语句 一般形式: do 循环体语句; while(expression); 执行流程:do 循环体 真(非0)while expr 假(0) c语言程序设

5、计 第5章 循环结构程序设计 特点:先执行循环体,后推断表达式 说明: 至少执行一次循环体 dowhile可转化成while结构循环体 while循环假(0) expr 真(非0) 循环体 c语言程序设计 第5章 循环结构程序设计 例5.3 用dowhile循环求 in 1 100 #include stdio.h main() int i,sum=0; i=1; do sum= sum+i; i+; while(i=100); printf(%d,sum); c语言程序设计 第5章 循环结构程序设计 例 while和dowhile比 较 #include stdio.h main() int

6、 i,sum=0; scanf(%d,i); while(i=100) sum+=i; i+; printf(%d,sum); 运行状况: 1 sum=5050 101 sum=0 运行状况: #include stdio.h main() int i,sum=0; scanf(%d,i); do sum+=i; i+; while(i=100); printf(%d,sum); 运行状况: 运行状况: 1sum=5050 101sum=101 c语言程序设计 第5章 循环结构程序设计 例题:求n的阶乘n!(n!=1*2* *n)。#includestdio.h main() int i=1,

7、 n; long fact=1; /*将累乘器fact初始化为1*/ printf(“input n: ”); scanf(“%d”, n); do fact *= i; /*实现累乘* i+; while(i=n); printf(%d ! = %ldn, n, fact); 程序运行状况如下: input n: 5 5 ! = 120 c语言程序设计 第5章 循环结构程序设计 for语句 格式: for(表达式1;表达式2;表达式3) 语句 执行过程:首先计算表达式1的值,给循环变 量赋初值,再测试表达式2的值,若其值非0, 则执行循环体语句,并计算表达式3的值,自 动修改循环变量的值,再

8、测试表达式2的值, 直到表达式2的值为0(假)则退出循环。三个表 达式都可以省略。 c语言程序设计 第5章 循环结构程序设计 for语句 一般形式: for(expr1 ; expr2 ; expr3) 循环体语句;forexpr1 假(0) expr2 真(非0) 循环体 expr3 执行流程: c语言程序设计 第5章 循环结构程序设计 求for循环求累计和 in 1 100 #includestdio.h main() int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i=100; i+) sum += i; /*实现累加*/ printf(sum=%dn,su

9、m); 程序运行状况如下: sum=5050 c语言程序设计 第5章 循环结构程序设计 求n的阶乘n!(n!=1*2*n)。#includestdio.h main() int i, n; long fact=1; /*将累乘器fact初始化为1*/ printf(“input n: ”); scanf(“%d”, n); for(i=1; i=n; i+) fact *= i; /*实现累乘*/ printf(%d ! = %ldn, n, fact);程序运行状况如下: input n: 5 5 ! = 120 c语言程序设计 第5章 循环结构程序设计 for语句一般应用形式: for(循

10、环变量赋初值;循环条件;循环变量增值) 循环体语句; 说明: 例2.12 用for循环求 for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分 号;不行省 无限循环: for(;) for语句可以转换成while结构 expr1; while(expr2) 循环体语句; expr3; c语言程序设计 第5章 循环结构程序设计 例5.4 #includestdio.h main( ) int i; for(i=0;i10;i+) putchar(a+i); 例:#includestdio.h main( ) int i=0; for(;i10;i+) putchar(a+

11、i); 例:#includestdio.h 例:#includestdio.h 运行结果:abcdefghij main( main( ) ) intint i=0; i=0; for(;i10;) for(;i10;putchar(a+i),i+) ; putchar(a+(i+); c语言程序设计 第5章 循环结构程序设计 main() int i,j,k; for(i=0,j=100;i=j;i+,j-) k=i+j; printf(%d+%d=%dn,i,j,k); #inc ludestdio.h #include stdio.h main() main() char c; for(

12、;(c=getchar()!='n') int i,c; for(i=0;(c=getchar()!='n'i+=3) printf(%c ,c); printf(%c ,i+c); c语言程序设计 第5章 循环结构程序设计 例:编写一个程序,输入10个整数,求出其中的最大数 #includestdio.h main() int i, max ,n; printf(“输入10个整数”); scanf(“%d”,n); max=n; for(i=2;i=10;i+) scanf (“%d”,n); if(nmax)max=n; printf(“最大数:%dn”,max); c语言程序设计 第5章 循环结构程序设计 【思索题】 鬼谷算题:今有一物不知其数,三三数之剩二,五五数之剩 三,七七数之剩二.部物几何? 用c语编程实现为: #include stdio.h main() int x; for(x=0;x100;x+) if (x%3=2x%5=3x%7=2) printf(this is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论