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

下载本文档

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

文档简介

1、第五章 循环结构程序设计,C语言程序设计算法的描述 SCS-SWPU,2,课程引入,例: 1+2+3 该如何实现,定义变量sum=0,i=1,又例:,3,第五章 循环结构程序设计,while语句,5.1,do-while语句,5.2,5.3,C语言程序设计第一章 C语言概述 SCS-SWPU,for语句,break语句和continue语句,5.4,5.5,程序举例,C语言程序设计算法的描述 SCS-SWPU,4,5.1 while 语句,1. while循环语句的形式 while(表达式) 循环语句,先判断条件,后执行语句,表达式,语句,零,非零,2. 执行过程:,跳出循环,此处无 ;,C语

2、言程序设计算法的描述 SCS-SWPU,5,例1:求,main() int i=1,sum=0; while (i=100) sum=sum+i; i+; printf(%d,sum); ,注意:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句 。,5.1 while 语句,C语言程序设计算法的描述 SCS-SWPU,6,1. do-while循环语句的形式 do 循环体 while(条件表达式);,先执行语句,后判断条件,2. 执行过程,此处有;,5.2 do-while 语句,C语言程序设计算法的描述 SCS-SWPU,

3、7,例2:用do-while型循环求:,main() int i=1, sum=0; do sum=sum+i; i+; while (i=100); printf(%d,sum); ,5.2 do-while 语句,C语言程序设计算法的描述 SCS-SWPU,8,【例5.3】while和do-while循环的比较。,#include void main() int sum = 0, i; scanf(%d, ,?,#include void main() int sum = 0, i; scanf(%d, ,运行结果: 1 sum=55 再运行一次: 11 sum=0,运行结果: 1 sum

4、=55 再运行一次: 11 sum=11,结论: (1) dowhile循环语句首先执行循环体,然后计算表达式并检查循环条件,所以循环体至少执行一次。 (2)退出dowhile循环的条件与退出while循环的条件相同,5.2 do-while 语句,C语言程序设计算法的描述 SCS-SWPU,9,一般格式:,执行流程:,for( 表达式1; 表达式2; 表达式3) 循环体语句 ,C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。,5.3 for 语句,C语言程序设计算法的描述 SCS-SWP

5、U,10,循环初始条件,循环控制条件,循环体,5.3 for 语句,循环变量增值/减值,for语句等价于下列语句: 表达式1; while (表达式2) 语句; 表达式3; ,C语言程序设计算法的描述 SCS-SWPU,11,例 用for循环求,#include main() int i,sum=0; for(i=1; i=100; i+) sum+=i; printf(%d,sum); ,相当于: i=1,sum=0; while(i = 100) sum = sum + i; i+; ,for语句最简单的形式: for(循环变量赋初值;循环条件;循环变量增值) 循环体 ,5.3 for 语

6、句,C语言程序设计算法的描述 SCS-SWPU,12,5.3 循环结构总结,用上述三种循环语句求,while语句:,n = 1;s = 1; while (n=100) s=s*n; n+; ,n = 1; s = 1; do s = s*n; n +; while(n=100);,do-while语句:,for (n = 1,s = 1; n=100; n+) s=s*n;,for语句:,C语言程序设计第二章 数据类型、运算符和表达式 SCS-SWPU,13,逗号运算符,逗号可作分隔符使用,将若干变量隔开 如 int a,b,c; 又可作运算符使用: 其一般形式: 表达式1,表达式2,表达式

7、n;,14,【例】main() int a,b,x; x=(a=8,b=15,b+,a+b); printf(“a=%d,b=%d,x=%dn”,a,b,x);,输出结果:a=8, b=16, x=24,【例】main() int a,b,x; x=a=8,b=15,b+,a+b; printf(“a=%d,b=%d,x=%dn”,a,b,x);,输出结果:a=8, b=16, x=8,逗号运算符,C语言程序设计第二章 数据类型、运算符和表达式 SCS-SWPU,14,C语言程序设计算法的描述 SCS-SWPU,15,5.3 for 语句使用格式说明,for( 循环变量赋初值; 循环条件; 循

8、环变量增值) 循环体语句 ,说明: for语句中任意一个表达式均可省,但分号“;”不可省 (1)省略“表达式1” :此时在for语句之前给循环变量赋初值。如 for( ;i=100;i+) sum=sum+i; 执行时,跳过“求解表达式1”这一步,其他不变。,i=1; for ( ; i=100; i+) sum=sum+i;,C语言程序设计算法的描述 SCS-SWPU,16,5.3 for 语句使用格式说明,for( 循环变量赋初值; 循环条件; 循环变量增值) 循环体语句 ,说明: (2) 省略表达式2: 即不判断循环条件,认为表达式2始终为真。 例如: for(i=1; ;i+) sum

9、=sum+i; 它相当于: i = 1; while(1) sum = sum + 1;i+; ,C语言程序设计算法的描述 SCS-SWPU,17,5.3 for 语句使用格式说明,for( 循环变量赋初值; 循环条件; 循环变量增值) 循环体语句 ,说明: (3)省略表达式3: 此时程序设计者应另外设法保证循环能正常结束。如: for(i=1;i=100;) sum = sum + i; i+; ,C语言程序设计算法的描述 SCS-SWPU,18,for语句的使用格式灵活: 表达式类型任意,可省略,但分号“;”不可省 当表达式2被省略时,需要在循环体中设置循环结束语句,否则构成死循环 无限循

10、环: for( ; ; ) 括号后边的表达式可以是任意有效的C语言表达式,5.3 for 语句总结,for(i=1; ; i+) sum+=i;,for(i=1; 1; i+) sum+=i;,C语言程序设计算法的描述 SCS-SWPU,19,例1:#include main( ) int i; for(i=0;i10;i+) putchar(a+i); ,运行结果:abcdefghij,例2:#include main( ) int i=0; for(;i10;i+) putchar(a+i); ,例3: #include main( ) int i=0; for(;i10;) putcha

11、r(a+(i+); ,例4: #include main( ) int i=0; for(; i10; putchar(a+i), i+) ; ,省略表达式 1,省略表达式1、3,省略循环体,结论:for语句的功能强大!,5.3 for 语句总结,C语言程序设计算法的描述 SCS-SWPU,20,例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); ,例6 #include main() char c; for(;(c=getchar()!=n;) printf(%c ,c); ,表达式

12、1、3为逗号表达式,结论: 表达式2:进行逻辑判断,只要为真就执行循环! 如:for(i=0;i=5;i+) sum+=i; for(i=0;i=5;i+) sum+=i; 表达式1,3:可以是C语言任意合法表达式,5.3 for 语句总结,若输入字符串:abcde,则以下while循环体将执行( )次 ch=getchar( ); while(ch= =e) printf(“*”); A)5 B) 4 C) 1 D) 0 有下列程序: void main( ) int k=5; while(-k) printf(%d,k-=3); printf(n); 执行后的输出结果是( )。 A)1 B

13、)2 C)4 D)死循环,真题练习,C语言程序设计算法的描述 SCS-SWPU,21,若变量已正确定义,有下列程序段: i=0; do printf(%d, ,i); while(i+); printf(%dn,i) ; 其输出结果是( )。 A)0,0 B)0,1 C)1,1 D)程序进入无限循环 下列程序运行后的输出结果是( )。 main( ) char c1,c2; for(c1=0,c2=9;c1c2;c1+ +,c2-) printf(%c%c,c1,c2); printf(n);,C语言程序设计算法的描述 SCS-SWPU,22,C语言程序设计算法的描述 SCS-SWPU,23,

14、例题1:打印九九乘法表,5.3 循环嵌套,C语言程序设计算法的描述 SCS-SWPU,24,循环的嵌套 - 在循环体内又包含一个循环结构,称为循环嵌套。,for( ; ;) do while(); while() . ,循环嵌套的执行流程 三种循环(while循环、do-while循环和for循环)可以互相嵌套。,5.3 循环嵌套,C语言程序设计算法的描述 SCS-SWPU,25,多行多列数据输出循环嵌套 外循环:控制行 内循环:控制列,例题1:打印九九乘法表,5.3 循环嵌套,C语言程序设计算法的描述 SCS-SWPU,26,5.3 循环嵌套,C语言程序设计算法的描述 SCS-SWPU,27

15、,#include void main() int i,j; printf(t 九九乘法表n); printf(t -n); for(i=1;i=9;i+) for( j=1;j=9;j+) printf(%d%d=%2dt,i,j,i*j); printf(n); ,5.3 循环嵌套,C语言程序设计算法的描述 SCS-SWPU,28,?,5.3 循环嵌套,百钱买百鸡 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一 用百钱买百鸡,问翁、母、雏各几何? 分析: 设cock、hen、chicken表示三者数量,其中,cock的取值范围(0,20),hen的取值范围为(0,33),则chicken=100

16、-cock-hen,且5*cock+3*hen+chicken/3=100 定义变量 用cock和hen的双重循环确定chicken的值 如果满足5*cock+3*hen+chicken/3=100则符合题目要求 直道全部状态测试完,C语言程序设计算法的描述 SCS-SWPU,29,循环嵌套练习,30,第五章 循环结构程序设计,while语句,5.1,do-while语句,4.2,4.3,C语言程序设计第一章 C语言概述 SCS-SWPU,for语句,break语句和continue语句,5.4,5.5,程序举例,C语言程序设计算法的描述 SCS-SWPU,31,5.4 break和conti

17、nue语句,1、 break语句 一般形式:break; 功能: 在switch语句中,结束case分支,跳出switch语句 在循环语句,终止并跳出循环体 说明: break只能终止并跳出最近一层的结构 break只能用于循环语句和switch语句中,C语言程序设计算法的描述 SCS-SWPU,32,5.4 break和continue语句,C语言程序设计算法的描述 SCS-SWPU,33,5.4 break和continue语句,C语言程序设计算法的描述 SCS-SWPU,34,2、 continue语句 一般形式: continue; 功能: 结束本次循环,跳过循环体中尚未执行的语句,进

18、行下一次是否执行循环体的判断 说明: 仅用于循环语句中 continue 语句仅结束本次循环 break语句则是结束整个循环过程。,5.4 break和continue语句,C语言程序设计算法的描述 SCS-SWPU,35,5.4 break和continue语句,C语言程序设计算法的描述 SCS-SWPU,36,例5.6 把100200之间的不能被3整除的数输出。,#include void main() int n; for (n=100;n=200;n+) if (n%3=0) continue; printf(%d ,n); ,5.4 break和continue语句,#include

19、 void main() int n; for (n=100;n=200;n+) if (n%3!=0) printf(%d ,n); ,C语言程序设计算法的描述 SCS-SWPU,37,例 求输入的十个整数中正整数的个数及其和与平均值,#include main( ) int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d, ,5.4 break和continue语句,C语言程序设计算法的描述 SCS-SWPU,38,判断m是否素数。,素数判别,C语言程序设计算法的描述 SCS-SWPU,39,#include void main() int m,i; printf(input a number: n); scanf(%d, ,40,第五章 循环结构程序设计,while语句,5.1,do-while语句,4.2,4.3,C语言程序设计第一章 C

温馨提示

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

评论

0/150

提交评论