资源描述:
《C语言课件第5章循环结构程序设计2课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章循环控制主要内容一、循环的概念二、用while语句实现循环三、用do-while语句实现循环四、用for语句实现循环五、break语句和continue语句六、循环嵌套七、应用举例思考求1~100的累加和。分析换一种思路:首先设置一个累计器sum,其初值为0,利用sum+=n来计算(n依次取1、2、……、100),只要解决以下3个问题即可:(1)将n的初值置为1;(2)每执行1次“sum+=n;”后,n增1;(3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。sum=1+2+…+1
2、00;.sum=sum+n;格式while(循环条件表达式){循环体语句}P70说明1、循环体如果包含一个以上的语句,必须使用复合语句形式。2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。3、先判断表达式,后执行语句。功能当表达式成立(表达式的值为非0值)时,执行while语句中的循环体语句。执行过程表达式循环体语句不成立成立§5.1while语句?sum=凵5050举例例5.1:求1~100的累加和。#includeintmain(){inti,sum;i=1;sum=0;while(
3、i<=100){sum=sum+i;i++;}printf("sum=%5d",sum);return0;}思考1、如果去掉循环体中的大括号,执行过程将会怎样变化?2、在循环体中,使循环条件趋向于不满足(假)的语句是哪条?3、变量i和sum在循环外不赋予初值行不行?i=1;sum=0;?1求1~50的累加和.2求1~100的奇数和.3求1~100的偶数和.求1到100的奇数和#includeintmain(){inti,sum;i=1;sum=0;while(i<100){sum=sum
4、+i;i++;i++;}printf("sum=%d",sum);return0;}运行结果:凵2500说明:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。(2)在循环体中应有使循环趋向于结束的语句举例练习:1、求1到100之间的偶数和;2、求N!#includeintmain(){inti,sum=0;i=1;while(i<=100){if(i%2==0)sum=sum+i;i++;}printf("%d",sum);return0;}#include
5、intmain(){inti=1,n;floatfac=1;printf("请输入n:");scanf("%d",&n);while(i<=n){fac=fac*i;i++;}printf("%.0f",fac);return0;}运行结果:凵2550请输入n:5运行结果:120利用公式:sum=1-3+5-7+9-11…,求前10项的和。#includeintmain(){ints,i,sum,t,n;i=0;n=1,sum=0,t=1,s=1;while(i<10){su
6、m=sum+t;n=n+2;s=-s;t=s*n;i++;}printf("sum=%d",sum);return0;}s:变化的符号i:第i项n:第i项的绝对值t:第i项的值sum:和运行结果:sum=-10举例举例例5.2:设s=1×2×3×……×n,求s不大于400000时最大的n。#includeintmain(){intn=1;longints=1;while(s<=400000){n=n+1;s=s*n;}printf("不大于400000时的最大n为:%ds值为:%ld"
7、,n-1,s);return0;}运行结果:不大于400000时的最大n为:9s值为:3628800前n项的乘积举例现有某班20名学生的C语言成绩,求该班学生的C语言的平均成绩。即:输入20个学生的成绩,计算平均值,输出平均值。分析:定义变量表示学生的成绩、全班总和、平均成绩。算法设计:第一步:输入20个学生的成绩第二步:计算成绩总和(用累加求和的方法)第三步:计算平均值(总和/人数)第四步:输出平均值如果定义20个变量保存20个成绩,程序中计算成绩总和会有什么问题?回顾例题:求1到100的奇数和#include<
8、stdio.h>intmain(){inti,sum;i=1;sum=0;while(i<100){sum=sum+i;i=i+2;}printf("sum=%d",sum);return0;}用while循环实现累加求和累加项是谁?累加项是如何不断被更新的?ii=i+2;例题现有某班20名学生的C语言成绩,求该班学生的C语言的平均成绩。即:输