c语言程序设计课件:循环控制.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《c语言程序设计课件:循环控制.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 循环 控制
- 资源描述:
-
1、第六章 循环控制 6 61 1 概述概述 所谓循环控制,就是如何实现循环结构所谓循环控制,就是如何实现循环结构的控制问题。的控制问题。有有4 4种方法:种方法: 用用gotogoto语句和语句和ifif构成循环。构成循环。 用用whilewhile语句。语句。 用用do-whiledo-while语句。语句。 用用forfor语句。语句。6 62 2 用用gotogoto语句和语句和ifif语句构成循环语句构成循环例例: : 对于计算对于计算 s=1+2+3+4+5+6+7+8+9+100 s1 is+i s i+1 ii10 输出syn s=0;s=0; i=1; i=1; lablelab
2、le: :s+=i;s+=i; i+; i+; if(i=10) if(i=10) goto lablegoto lable; ; printf printf(“%d”,s)(“%d”,s) ;语句标号 无条件转向语句 goto goto 语句可以构语句可以构造循环,但不主张用,造循环,但不主张用,因为它容易破坏结构因为它容易破坏结构化程序设计。化程序设计。 goto 语句可以构造循环,但不主张用,因为它容易破坏结构化程序设计。 6 63 while3 while语句语句 whilewhile语句是专门用于实现循环控制的语语句是专门用于实现循环控制的语 句之一。句之一。 其一般形式为:其一般形
3、式为: while (while (表达式表达式) ) 语句语句 含义:当表达式的值为非含义:当表达式的值为非0 0时,执行循环体,时,执行循环体,否则执行后续语句。否则执行后续语句。语句关键 表达循环条件的表达式循环体 语句关键字 执行过程执行过程: : while (while (表达式表达式) ) 语句语句 表达式循环体0非0i 1 0? s=0 i=1s=s+ii=i+1例:用例:用whilewhile语句实现前面算法:语句实现前面算法:main()main() int int i=1,s=0;i=1,s=0; while(i=10)while(i=10) s=s+i; s=s+i;
4、i+; i+; printf printf(“n %d”,s);(“n %d”,s); 注意与注意与ifif语句的区别。语句的区别。循环体中要有使循环条件趋于成立的条件循环体中要有使循环条件趋于成立的条件yn while(i=10)while(i=10) s=s+i; s=s+i; i+; i+; 可简写为:可简写为: while(i=10) s+=i+;while(i=10) s+=i+;非0(真)0(假)表达式循环体 6 64 do-while4 do-while语句语句 do-whiledo-while语句主要用于实现直到型循环。语句主要用于实现直到型循环。 其一般形式为:其一般形式为:
5、 dodo 循环体循环体 while(while(表达式表达式););执行过程:执行过程: 真s=0i=1i10?s=s+ii=i+1假例:用例:用do-whiledo-while语句实现前面算法:语句实现前面算法: main()main() int int i=1,s=0;i=1,s=0; dodo s+=i+; s+=i+; while(i=10);while(i=10); printf printf(“n%d”,s);(“n%d”,s); 注意注意与与whilewhile语句的区别。语句的区别。 假表达式2求解表达式1循环体求解表达式3真 6 65 for 5 for 语句语句 forf
6、or语句是一种使用最为灵活,语句是一种使用最为灵活,并且是用得最多的循环控制语句,并且是用得最多的循环控制语句,其一般形式为:其一般形式为: for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3)3) 循环体循环体大体含义:大体含义: 对于()的情况执行循环体内容。对于()的情况执行循环体内容。例:用例:用forfor语句实现前面的算法:语句实现前面的算法:s=0;s=0;for(i=1;i=10;i+) s+=i; for(i=1;i=10;i+) s+=i; 标准形式标准形式表达式1 表达式2表达式3循环体可以理解:可以理解: 循环变量循环变量i i从初值从初值1 1开始
7、到终值开始到终值1010,步长为,步长为1 1,重复执,重复执行循环体。行循环体。forfor语句的常见变化:语句的常见变化: s=0; i=1;s=0; i=1; for(;i=10;i+)s+=i; for(;i=10;i+)s+=i; s=0;s=0; f o r ( i = 1 ; i = 1 0 ; ) s + = i + + ; f o r ( i = 1 ; i = 1 0 ; ) s + = i + + ; s=0;i=1; s=0;i=1; f o r ( ; i = 1 0 ; ) s + = i + + ; f o r ( ; i 10) break; if(i10) b
8、reak; s=10;i=10; s=10;i=10; for(;-i;) s+=i; for(;-i;) s+=i;省略表达式省略表达式2 2表达式表达式2 2是是任意表达式任意表达式 s=0; s=0; for(i=1,j=10;ij;i+,j-) s+=i+j; for(i=1,j=10;ij;i+,j-) s+=i+j; 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10在程序设计中不要过分追求它的多变性在程序设计中不要过分追求它的多变性ij用逗号表达式用逗号表达式例:例:求求n! n!=1n! n!=1* *2 2* *3 3(n-1)(n-1)* *
9、n n 参照累加求和参照累加求和main()main() int int i,n=5 i,n=5,s=1;s=1; for(i=1;i=n;i+)s for(i=1;i=n;i+)s* *=i;=i; printf printf(“n s=%d”,s);(“n s=%d”,s); 注意注意s s的初值。的初值。注意当注意当n n较大时的情况。较大时的情况。求和与连乘都是最常用的算法,要熟练掌握。求和与连乘都是最常用的算法,要熟练掌握。 例:求自然数例:求自然数1-1001-100中能被中能被3 3整除的数之和。整除的数之和。 main()main() int int i,s=0; i,s=0;
10、 printf printf(“n %d”,s);(“n %d”,s); 求能被求能被3 3整除但不被整除但不被7 7整除的数之和?整除的数之和?for(i=1;i=100;i+) s+=i;for(i=1;i=100;i+) if(i%3=0)s+=i;for(i=3;i=100;i+=3) s+=i; for(i=3;i=100;i+=3) if (i%7)s+=i; 例:求任意例:求任意100100个数中的最大值。个数中的最大值。 main()main() int int i,a,max; i,a,max; max=?max=? for(i=1;i=100;i+) for(i=1;ima
11、x) max=a;if(amax) max=a; printf printf(“n max=%d”,max);(“n max=%d”,max); 循环体中没有引用循环变量。循环体中没有引用循环变量。i i的作用?的作用? 求任意个数中的最大值?求任意个数中的最大值?for(i=1; ;i+)for(i=1; ;i+) if(a=-9999)break;if(a=-9999)break;max=-32768;max=-32768;外重循环内重循环执行200次要掌握多重循环执行的全过程6 66 6 循环的嵌套循环的嵌套 循环体内又包含另一个完整的循环结构循环体内又包含另一个完整的循环结构( (多重
12、多重循环循环) )。 for(i=1;i=10;i+)for(i=1;i=10;i+) for(j=1;j=20;j+) for(j=1;j=20;j+) s+=i+j; s+=i+j; 以上多重循环结构可以简写为:以上多重循环结构可以简写为: for(i=1;i=10;i+)for(i=1;i=10;i+) for(j=1;j=20;j+) for(j=1;j=20;j+) s+=i+j; s+=i+j;例:例:一场晚会要现场随机抽取幸运观众,抽一场晚会要现场随机抽取幸运观众,抽取办法是由主持人随机给定一个数字,如座位取办法是由主持人随机给定一个数字,如座位的行号和列号之和正好等于该数字的观
13、众就是的行号和列号之和正好等于该数字的观众就是幸运观众,已知晚会现场共有幸运观众,已知晚会现场共有3030排座位,每排排座位,每排2020个座位,请编写程序,从键盘输入主词人随个座位,请编写程序,从键盘输入主词人随机给定数字,输出所有幸运观众的坐号。机给定数字,输出所有幸运观众的坐号。 main()main() int i,j,num; int i,j,num; scanf scanf(“%d”,&num);(“%d”,&num); for(i=1;i=30;i+) for(i=1;i=30;i+) for(j=1;j=20;j+) for(j=1;j=20;j+) if(i+j=num) i
展开阅读全文