您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C程序设计 第5章 循环结构设计程序设计
1高级语言程序设计南京邮电大学传媒技术学院第5章循环结构设计程序设计2高级语言程序设计南京邮电大学传媒技术学院在C语言中可以用以下语句来实现循环:1)while语句。2)do--while语句。3)for语句。4)goto语句和if语句。循环是一种对同一程序段有规律的重复被重复执行的部分叫循环体。5.1引言3高级语言程序设计南京邮电大学传媒技术学院5.2while语句真(非零)表达式循环体假(零)while语句的形式:while(表达式){循环体;}4高级语言程序设计南京邮电大学传媒技术学院5.3do--while语句do--while的形式:do{循环体;}while(表达式);真(非零)表达式循环体假(零)5高级语言程序设计南京邮电大学传媒技术学院5.4for语句for的形式:for(表达式1;表达式2;表达式3){循环体;}表达式1:变量赋初值;表达式2:循环执行条件,关系表达式或逻辑表达式;表达式3:修改变量的值;循环体:被重复执行的语句。6高级语言程序设计南京邮电大学传媒技术学院说明:三个表达式都可以是逗号表达式。三个表达式都可以省略,但分号不能省略。用for语句实现求1+2+…+100?7高级语言程序设计南京邮电大学传媒技术学院#includestdio.hvoidmain(){intn,i=1;longintfac;printf(pleaseinputn(n=0):);scanf(%d,&n);if(n=0)fac=1;else{printf(Invalidinput!\n);return0;}while(i=n){fac*=i;i++;}printf(%d!=%ld\n,n,fac);}当循环次数已知时,一般通过定义循环控制变量来控制循环次数;循环体中应该对循环变量进行改变,以使循环能够结束【例5-1】用while循环语句求n!8高级语言程序设计南京邮电大学传媒技术学院【例5-2】用do-while语句构成的循环结构求n!do{fac*=i;i++;}while(i=n);第一次条件为真时,while,do-while等价;第一次条件为假时,二者不同。while(i=n){fac*=i;i++;}9高级语言程序设计南京邮电大学传媒技术学院5.5break语句和continue语句在循环体中的应用写出以下程序执行后的输出结果。voidmain(){inti,s=0;for(i=1;i=100;i++){s+=i;}printf(“%d\n”,s);}循环体中出现break语句,使执行流程退出整个循环。10高级语言程序设计南京邮电大学传媒技术学院【例】写出以下程序执行后的输出结果。voidmain(){ints=0,i=0;while(s50){i++;s+=i;}printf(“%d\n”,s);}循环体中出现continue语句,提前结束本次循环,进入下一次循环条件判断,决定是否继续执行。11高级语言程序设计南京邮电大学传媒技术学院#includestdio.hvoidmain(){intn;scanf(%d,&n);例:输入一系列整数,判断每个数的正负,输入0时,结束循环while(n!=0){if(n0)printf(+);elseprintf(-);scanf(%d,&n);}}12高级语言程序设计南京邮电大学传媒技术学院#includestdio.hvoidmain(){charch;intnum=0;ch=getchar();例:统计从键盘输入的一行字符的个数(以回车键作为输入结束标记while(ch!='\n'){num++;ch=getchar();}printf(num=%d\n,num);}13高级语言程序设计南京邮电大学传媒技术学院【例5-3】编程实现如下要求:找出1到100之间的前10个偶数并输出。while(n100){n++;if(count==10)break;if(n%2!=0)continue;printf(“%d\t”,n);count++;}程序运行结果:246810121416182014高级语言程序设计南京邮电大学传媒技术学院在一个循环体内又包含有另一个完整的循环结,称为循环嵌套。5.6循环的嵌套前面介绍的三种类型的循环:while、do-while、for三种都可以互相嵌套。15高级语言程序设计南京邮电大学传媒技术学院【例】编程实现打印以下三个图案:******************************************************************************************************************************************16高级语言程序设计南京邮电大学传媒技术学院【例5-4】打印九九乘法表1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=8117高级语言程序设计南京邮电大学传媒技术学院具体程序如下:#includestdio.hvoidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)printf(%d*%d=%-4d,j,i,i*j);printf(\n);}}18高级语言程序设计南京邮电大学传媒技术学院5.8应用举例【例5-6】判断一个数是否为素数算法分析:素数是指那些大于1,且除了1和它本身以外不能被其他任何数整除的数。为了判断某数x是否为素数,采用最简单的方法:用2、3、4、…、sqrt(x)这些数逐个去除x,只要能被一个数整除,x就不是素数;否则,x就是素数。xx19高级语言程序设计南京邮电大学传媒技术学院程序代码:#includestdio.h#includemath.hvoidmain(){intx,k;intflag=1;scanf(%d,&x);for(k=2;ksqrt(x);k++)if(x%k==0){flag=0;break;}if(flag)printf(%disaprime,x);elseprintf(%disnotaprime,x);}20高级语言程序设计南京邮电大学传媒技术学院【例5-7】计算裴波那契数列的前十项算法分析:斐波那契数列的变化规律是:第一项和第二项为1从第三项开始,每一项的值为前两项的和应用递推算法21高级语言程序设计南京邮电大学传媒技术学院程序源代码#includestdio.hvoidmain(){intf1,f2,f3;inti;f1=f2=1;//第1、2项赋初置printf(\n%5d%5d,f1,f2);for(i=3;i=10;i++){f3=f1+f2;//循环由前两项求出新的一项printf(%4d,f3);f1=f2;f2=f3;}}22高级语言程序设计南京邮电大学传媒技术学院例:输入任意一个整数,将其逆序输出,例如输入1234,输出4321。#includestdio.hvoidmain(){longnum;intn;scanf(%ld,&num);while(num!=0){n=num%10;printf(%d,n);num=num/10;}}23高级语言程序设计南京邮电大学传媒技术学院小结三种循环语句:while或do-while语句主要用于循环次数不明确的循环结构;for语句主要用于循环次数明确的循环结构;三种循环结构可以相互嵌套组成多重循环。break语句跳出循环,continue语句提前结束本次循环,进入下一轮循环。需要掌握累加、连乘、判断素数、斐波那契数列计算等典型循环应用算法24高级语言程序设计南京邮电大学传媒技术学院第一次P62-63:5.4、5.8第二次P62-63:5.1、5.3、5.7第二次P62-63:5.5、5.10作业
本文标题:C程序设计 第5章 循环结构设计程序设计
链接地址:https://www.777doc.com/doc-3354802 .html