C语言循环结构ppt课件.ppt
《C语言循环结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言循环结构ppt课件.ppt(53页珍藏版)》请在三一办公上搜索。
1、循环语句概述,问题:求1100的累计和。根据已有的知识,可以用“1+2+100”来求解,但显然很繁琐。现在换个思路来考虑:首先设置一个累计器sum,其初值为0,利用sum=sum+i 来计算(i依次取1、2、100),只要解决以下3个问题即可:(1)将i的初值置为1;(2)每执行1次“sum=sum+i”后,i增 1;(3)当n增到101时,停止计算。此时,sum的值就是1100的累计和。,第1页,ppt课件,根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),C语言提供了循环语句来实现,以简化、并规范循环结构程序设计。在语言中,可用以下语句实现循环:
2、(1)用for语句。(2)用do-while语句。(3)用while语句。,第2页,ppt课件,5.1 for语句,循环的意思就是让程序重复地执行某些语句。,C语言提供的循环结构有三种:for语句、while语句和do_while语句。,for语句既可以用于循环次数已知的情况,也可用于循环次数预先不知道的情况。,for语句的一般形式为:,for();),第3页,ppt课件,功能:先计算的值,然后判断的值,若该值为“假”,则退出循环,执行循环体下面的语句;若该值为“真”,则执行,然后计算的值,再判断的值,重复以上的操作。,for语句的流程图如图:,一般情况下,是由一对花括括起来的复合语句。,第4
3、页,ppt课件,for循环语句注意:,可以省略,但须保留分号(;),同时在for之前必须给循环变量赋值,如:i=1;for(;i=100;i+)sum=sum+i;,一般不可省略,否则为无限循环。如:for(i=1;i+)sum=sum+i;相当于条件总为真,程序会一直不停的执行直到“数据溢出”。,第5页,ppt课件,亦可省略,但在循环语句体中必须有语句来修改循环变量,以使条件表达式的值在某一时刻为0,从而能正常结束循环。,如:for(sum=0,i=1;i=100;)sum=sum+i;i+;,三个表达式均省略,即for(;),为无限循环,程序中要避免这种情况的发生。,条件表达式可以是关系表
4、达式、数值表达式。只要表达式的值0。就执行循环语句。,如:for(i=0;(c=getchar()!=n;i+=c);,第6页,ppt课件,初始表达式、循环表达式可以是逗号表达式,如:for(sum=0,i=1;i=100;i+,i+)相当于:sum=0;for(i=1;i=100;i=i+2),for循环也可以嵌套,执行时是由外向里,逐层进行,先执行外层循环,再进入内层循环;退出时相反,由里向外逐层退出,先退出内层循环,然后退到上一层循环。,【例5-2】任意从键盘输入两个整数a、b(ab),求它们之间的几何级数的和,数学表达式为。,第7页,ppt课件,这个问题与例5-1类似,只是所求级数和的
5、初值和终值不一样,是由键盘任意输入的,为避免计算机错误,要求初值a要小于终值b。,算法流程图如右图:,第8页,ppt课件,/*exam5_2.c 求几何级数的和*/#include main()int i,j,a,b,sum=0;printf(Please input two number:n);scanf(a=%d,b=%d,第9页,ppt课件,【例5-3】编写一个程序,在屏幕上打印出具有8行7列的如下图案:,这是一个很有规律的图案,可采用二重循环嵌套的方式:第1层控制行数,第2层控制列数。,算法流程图如下图:,第10页,ppt课件,/*exam5_3.c 打印图案*/#include ma
6、in()int i,j;for(i=1;i=8;i+)for(j=1;j=7;j+)printf(*);printf(n);,第11页,ppt课件,5.2 while语句,While语句也是一种用于产生循环动作的语句,一般形式为:,while(),功能:先计算的值,若该值为“假”,则跳出循环,执行循环体后面的语句;若该值为“真”,则执行,然后回过头来再检查的值,重复以上的操作。,while语句的流程图,第12页,ppt课件,:是用一对花括号括起来的复合语句。,注意:在中要有使的值为假(或的值为零)的语句,否则会使程序出现无限循环而发生错误。,注意:由于while循环是先判断的值,后决定是否执行
7、,因此,有可能一次也不执行。,第13页,ppt课件,【例5-4】将例51用while语句重写,求简单几何级数的和。,/*exam5_4.c 用while求简单几何级数的和*/#include main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);,程序运行结果:sum=5050,第14页,ppt课件,【例5-5】输入一个正整数n,求n!。,计算表达式:n!=n*(n-1)*(n-2)*2*1。用i代表循环变量,s代表n!的结果值。,编程时既可以采用for循环,也可以采用while循环,求任意正整数n的阶乘的算法流程图如
8、图:,第15页,ppt课件,/*exam5_5.c while应用:求n!*/#include main()int i,n;long s;printf(please enter a integer:n);scanf(%d,试改为for循环?,第16页,ppt课件,while 和 for 的比较,for(i=1;i=10;i+)sum=sum+i;,i=1;循环变量赋初值while(i=10)循环条件 sum=sum+i;i+;循环变量的改变,循环体,第17页,ppt课件,例5-6 从键盘输入一批学生的成绩,计算平均分。分析:求累加和确定循环条件不知道输入数据的个数,无法事先确定循环次数用一个特
9、殊的数据作为正常输入数据的结束标志,比如选用一个负数作为结束标志。,第18页,ppt课件,#include Int main(void)int num;double grade,total;num=0;total=0;printf(“Enter grades:n);scanf(%lf,Enter grades:67 88 73 54 82-1Grade average is 72.80,Enter grades:-1 67 88 73 54 82Grade average is 0,第19页,ppt课件,5.3 dowhile语句,do_while语句是另一种用于产生循环动作的语句。一般形式为
10、:,do while();,功能:先执行一次,然后计算的值,若该值为“真”,则重复以上的操作,直到该值为“假”,则退出循环语句,执行下一条语句。,do_while语句的流程图:,第20页,ppt课件,应该是用一对花括号括起来的复合语句。,注意:,要有可以使的值为“假”(即的值等于零)的语句,否则会使程序出现无限循环而发生错误。,do_while循环与while循环的区别,不论情况怎样,do_while循环中的至少会执行一次。,第21页,ppt课件,【例5-7】将例5-6用do_while语句重写。,第22页,ppt课件,#include Int main(void)int num;double
11、 grade,total;num=0;total=0;do printf(“Enter grades:);scanf(“%lf”,Enter grades:67 88 73 54 82-1Grade average is 72.80,Enter grades:-1 67 88 73 54 82Grade average is 0,第23页,ppt课件,【例5-8】求sin(x)=x-x3/3!+x5/5!-x7/7!+直到最后一项绝对值小于le-7(即10-7)为止。,分析:,多项式从第二项起,每一项都是前一项乘以一个因子,(-x2)/(n*(n-1)(n=3,5,7,9)用s代表sin(x)
12、的值,t代表每一项的值,则:t=t*(-x2)/(n*(n-1);s=s+t;x的值是用弧度值表示的(10=180弧度),如:3000.523598775,算法流程图如后图:,第24页,ppt课件,第25页,ppt课件,/*exam5_8.c 求sin(x)的值*/#include#include main()double s,t,x;int n=1;scanf(%lf,程序运行结果:1.57sin(1.570000)=1.000000,第26页,ppt课件,while 是先判别条件,再决定是否循环;do-while 是先至少循环一次,然后再根据循环的结果决定是否继续循环。,while 和 d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 循环 结构 ppt 课件

链接地址:https://www.31ppt.com/p-2052364.html