C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计

上传人:E**** 文档编号:89190739 上传时间:2019-05-21 格式:PPT 页数:52 大小:1.34MB
返回 下载 相关 举报
C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计_第1页
第1页 / 共52页
C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计_第2页
第2页 / 共52页
C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计_第3页
第3页 / 共52页
C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计_第4页
第4页 / 共52页
C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 王曙燕 chap5 循环结构程序设计(52页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计,第5章 循环结构程序设计,循环结构程序设计,while语句(当型循环) dowhile语句(直到型循环) for语句(当型循环) if-goto语句 循环的嵌套 break与continue语句,循环结构中的跳转语句,循环结构程序设计,循环结构程序设计的应用场合:当某个条件满足时,需要多次反复进行同样工作。,例如:,1、求实数x的10次方,2、求数列1,2,i, 的前n项和,3、判断一个整数是否是素数,循环结构的两种基本类型,当型循环 while, for,直到型循环 do.while,5.1 while语句(当型循环),特点:先判断,再执行 while 语句的语法格式:,注意

2、: 循环体可能一次也不执行。 循环体可为任意类型语句。 退出while循环的情况: exp不成立 循环体内遇break, return, exit等。,while( exp ) 循环体; ,例:求实数x的10次方,1)问题分析:,开始,x10 = 1*x*x 10个x,循环语句: 循环变量初始化: 循环控制条件: 循环体: 循环变量的修改:,i1; i=10; pow*=x; i+;,例:求实数x的10次方,#include main() int i; double x,pow; printf(“Please input x:“); scanf(“%lf“, ,循环语句四要素: 循环(控制)变

3、量初始化 循环控制条件 循环体(关键是找规律) 循环变量的修改,例:求实数x的 n(从键盘输入) 次方,1)问题分析:,开始,xn = 1*x*x n个x,循环语句四要素: 循环变量初始化: 循环控制条件: 循环体: 循环变量的修改:,i1; i=n; pow*=x; i+;,例:求实数x的 n(从键盘输入) 次方,#include main() int i, n; double x,pow; printf(“Input x and n:“); scanf(“%lf%d“, ,思考: 如果 n0,程序该如何编写?,例题:求x的n(从键盘输入)次方。,#include main() int i,

4、 n, absn; double x, pow=1.0; printf(“Please input the x and n:”); scanf(“%lf%d”, ,例:求整数1100 之和,1)问题分析: 2)程序步骤: 定义变量sum存储累加结果,并初始化为0 定义变量i用以存储数列通项,初值为1 给sum不断的加i,同时i也加1生成下一个项,sum=1+2+100 实质上为等差为1的数列前100项和,加数的范围:i=1 i=100 求和过程: sum=sum+i; i+; 此时,sum=1; i=2; sum=sum+i; i+; 此时,sum=1+2; i=3; sum=sum+i; i

5、+; 此时,sum=1+2+3; i=4; sum=sum+i; i+; 此时,sum=1+2+99; i=100; sum=sum+i; i+; 此时,sum=1+2+99100;i=101;,开始,例:求整数1100 之和,例:求整数1100 之和,#include main() int i, sum; sum=0; i=1; while( i= 100 ) sum+=i; i+; printf(“Sum=%dn“, sum); ,例:求整数1n 之和,1)问题分析:,sum=1+2+n 实质上为等差为1的数列前n项和,开始,循环语句四要素: 循环变量初始化: 循环控制条件: 循环体: 循

6、环变量的修改:,i1; i=n; sum+=i; i+;,例:求整数1n 之和,#include main() int i, sum, n; printf(“Please input n:“); scanf(“%d“, ,例:求整数1n 之间偶数之和,问题分析:,sum=2+4+ 实质上为等差为2的数列,开始,循环语句四要素: 循环变量初始化: 循环控制条件: 循环体: 循环变量的修改:,i2; i=n sum+=i; i+2;,例:求整数1n 之间偶数之和,#include main() int i, sum, n; printf(“Please input n:“); scanf(“%d“

7、, ,例:求整数sum=1-2+3-4 n,#include main() int i,sum,n,s=1; printf(“Please input n:“); scanf(“%d“, ,练习:求n!,1)问题分析:,1*2*n 实质上为等差为1的数列前n项乘积,开始,fact=1;,fact*,fact,#include main() int i, fact, n; printf(“Please input n:“); scanf(“%d“, ,5.1 while语句说明,while 语句之前必须预先设置判断的初始条件 防止“死循环”的发生 在循环体中必须有使循环趋向结束的操作,即 在循环

8、体中要有能让逻辑表达式值改变的语句 正确使用复合语句 当循环体中含多条语句时,需用 将这些语句 括起来,构成一个复合语句 while ( ) 后面不能加分号; 如果后面紧跟分号,编译系统认为循环体是一 条空语句, 造成“死循环”。 在循环体中,语句的先后位置必须符合逻辑 否则会影响运算结果。,思考程序段的输出? sum=0; i=1; while (i=100) i+; sum=sum+i; ,运行后,输出:5150 原因是什么?,5.2 do-while语句(直到型循环),特点:先执行,再判断 while 语句的语法格式:,注意: 循环体至少要执行一次。 循环体可为任意类型语句。 退出whi

9、le循环的情况: exp不成立 循环体内遇break, return, exit等。,do 循环体; while (exp);,#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“%d“,sum); ,例 用do-while循环求,#include main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(“%d“,sum); ,说明:当两者具有相同的循环体时,当while 后面的表达式第一次的值为“真” 时,两种循环得到的结果相同。 否

10、则,二者结果不相同。,main() int sum=0,i; scanf(“%d“, ,main() int sum=0,i; scanf(“%d“, ,当i=1时: sum=55,当i=11时: sum=0,当i=1时: sum=55,当i=11时: sum=11,5.3 for语句 (简洁的形式),一般形式:,for (表达式1;表达式2;表达式3) 循环体语句,说明: 表达式1:循环变量初始化 表达式2:循环控制条件。 省略则表示死循环 表达式3:循环变量修改。 语句:需要重复执行的部分,称为循环体,例 用for循环求,#include main() int i,sum=0; i=1;

11、while(i=100) sum=sum+i; i+; printf(“%d“,sum); ,#include main( ) int i,sum; sum=0; for(i=1; i=100; i+) sum=sum+i; printf(“%d“,sum); ,说明:for语句中表达式1、表达式2、表达式3 类型任意,都可省略,但分号不可省。,for(i=1; i=100; i+) sum=sum+i;,for(i=1; i=100; ) sum=sum+i; i+; ,i=1; for( ; i=100; i+) sum=sum+i;,for(i=1; ;i+ ) sum=sum+i; i

12、f(i100) break; ,i=1; for( ; ; ) sum=sum+i; if(i100) break; i+; ,说明:,for中3个表达式类型任意可省略, 但两个“;” 都不可省; 无限循环: for(;) for语句可以转换成while结构 表达式2一般是关系表达式或逻辑表达式, 但也可以是 数值表达式或字符表达式,只 要其值为真,就执行循环体,注意: 在省略某个表达式时,应在适当位置 进行循环控制的必要操作,以保证循环的正确执行,#include main() int i, n; long sum; printf(“please input the n:”); scanf(

13、“%d”, ,例 求n!。,思考: 如何求s =1!+ 2!+ + n! ?,练习 从键盘上输入一批正整数,求它们的累加 和及平均值。,#include main() int sum=0, count=0, x; float aver; printf(“please input the data:“); scanf(“%d“, ,* * * *,练习 请在屏幕上输出以下(行数n从键盘输入) 图形。,#include main() int i,j,n; printf(“nplease input lines:“); scanf(“%d“, ,练习 判断m是否为素数。,素数一个自然数,若除了1和它

14、本身外不能被其他整数整除,如果这个数m能被2,3,m-1中任何一个数整除,说明它不是素数,#include main() int m, i, flag; printf(“ninput integer m: “); scanf(“%d“, ,i=m的作用: force i equals to m, exit loop,练习 求100到150之间的所有素数,#include main() int m; int i,flag; for(m=101;m=150;m+) flag=1; for(i=2;i=m-1;i+) if(m%i=0) flag=0; i=m; if(flag=1) printf(

15、“%5d“,m); ,练习 求100到150之间的所有素数,并设定每行 输出5个素数。,#include main() int m; int i,flag,count=0; for(m=101;m=150;m+) flag=1; for(i=2;i=m-1;i+) if(m%i=0) flag=0; i=m; if(flag=1) printf(“%5d“,m); count+; if(count%5=0) printf(“n“); ,1、三种循环语句在功能上是等效的,即任何一种循环均可以由其它循环来替代。 2、while与for作为当型循环,特点是先判断、再执行,而for循环则是while循环的更加简洁的表示方式。 for循环适用于循环变量按等差数列规律变化的情况。 3、dowhile作为直到型循环,特点是先执行、再判断,其最少要执行一次。,三种循环语句的关系,三种循环语句的应用,while语句多用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号