第4章 循环结构.ppt_第1页
第4章 循环结构.ppt_第2页
第4章 循环结构.ppt_第3页
第4章 循环结构.ppt_第4页
第4章 循环结构.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第5章循环结构,循环:重复执行一段过程(语句)。其中重复执行的过程为循环体。,C中实现循环的三种语句:whiledo-whilefor,循环:三种基本结构之一,形式:while(表达式)循环体其中:1)表达式可是任意表达式;2)循环体可以有任何语句;3)当循环体为两条以上语句时,用写成复合语句,1.while语句,执行流程:while,while语句,0,注意1.循环体2句以上时,用括起来。2.while(i=n)后没有“;”号,否则是死循环。3.当开始条件就不成立,循环体可能一次也不执行。4.表达式的值应最终能变为0,避免死循环。,while语句,intk=0;while(k10)printf(“*”);k+;,#includevoidmain()inti,n,sum;i=1;sum=0;scanf(“%d”,while语句,例4.2:求1+2+3+n,n为任意值,while语句,例4.5输入20个数,求它们的和以及平均值。,#includestdio.hvoidmain()inti,sum,a;sum=0;i=0;printf(请输入20个整数:);while(i=1e-6)pi=pi+t;n+=2.0;s=-s;t=s/n;pi=pi*4;printf(“pi=%fn”,pi);,求的近似值,直到最后一项的绝对值小于10-6为止。,形式:for(e1;e2;e3)循环体其中:e1,e2,e3为表达式。一般e1为赋值式;e2为关系或逻辑式,作为判断循环是否结束条件;e3为增、减量。,3.for语句,执行功能:,for,for语句,for(e1;e2;e3)循环体,#includevoidmain()inti,sum=0;printf(“请输入一个正整数n”);scanf(“%d”,for语句,例:求1+2+3+n,循环体中:for(i=1;i=n;i+)sum+=i;等价于:i=1;while(i=n)sum+=i;i+,for语句,for语句的等价形式:表达式1;while(表达式2)循环体;表达式3;,i=1;for(;i=100;i+)sum+=i;省e1,for(i=1;i100)break;,for语句使用说明:,其中的e1和e3可以使用逗号运算符。例:for(i=1,j=10;ij;i+,j-)printf(“%d%dn”,i,j);输出:11029384756,for语句使用说明:,for(e1;e2;e3)后边若有“;”则循环体为空语句。例如:charc1;intn=0;for(;(c1=getchar()!=n;n+);省略e1,for语句使用说明:,循环语句中包括if语句:,例题:分别输出100以内奇数的和与偶数的和#includevoidmain()inti,sum1,sum2;sum1=sum2=0;for(i=1;i100;i+)if(i%2)sum1+=i;elsesum2+=i;printf(“sum1=%dsum2=%dn”,sum1,sum2);,例题:求e的近似值公式:(当n=10时满足要求),for语句例题:,#includevoidmain()floate=1.0;intn=1,i;for(i=1;i11;i+)n=n*i;求n!e=e+1.0/n;printf(“e=%fn”,e);,for语句例题:,结果:e=2.718223,注意:循环体为二条以上语句时,用.括起来,否则只执行for(e1;e2;e3)后边的一条语句。,for语句例题:,用while、do-while和for实现同一循环,#includevoidmain()inti=1,sum=0;dosum+=i;i+;while(i=100);printf(“sum=%dn”,sum);,#includevoidmain()inti=1,sum=0;while(i=100)sum+=i;i+;printf(“sum=%dn”,sum);,#includevoidmain()inti=1,sum=0;for(;i=100;i+)sum+=i;printf(“sum=%dn”,sum);,#includevoidmain()inti=5;doprintf(“%d”,i);i=i-2;while(i!=0);,#includevoidmain()inti=5;while(i!=0);printf(“%d”,i);i=i-2;,#includevoidmain()inti;for(i=5;i!=0;i=i-2)printf(“%d”,i);,以下均为设计错误而造成死循环(无限循环):,嵌套:在一个循环的循环体内又出现另一个循环时,称为循环的嵌套。三种循环语句可以互相嵌套。,4.循环的嵌套:,while(e1)dowhile(e);for(e1;e2;e3)while(e)for(a1;a2;a3),二重循环,二重循环,4.循环嵌套的形式:,for(e1;e2;e3)for(n1;n2;n3)for(m1;m2;m3).,三重循环,4.循环嵌套的形式:,每当外层循环执行一次时,内层循环执行一遍,.如此进行,直到外层执行完。,多重循环执行:,u二重以上循环称为多重循环;u无论那种嵌套,内层必须完全套在外层的内部。u循环嵌套的书写注意缩进,使层次清晰。,u内外层循环的控制变量名不能相同,如下例的i、j、k。,4.循环嵌套说明,4.循环嵌套说明,#includevoidmain()inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d,i);printf(n);,编程序输出以下内容:,分析以下程序运行结果,#includevoidmain()inti,j;for(i=1;i10;i+)j=0;while(+j=10-i)printf(“%4d”,i*j);printf(“n);,1234567892468101214163691215182148121620245101520256121824714218169,程序运行结果:,#includevoidmain()intm,i,j;longs=0;for(i=1;i=10;i+)n=j=1;while(j=i)n*=j;j+;s+=n;printf(“1+2!+3!+.+10!=%ldn”,s);,求:1+2!+3!+4!+.+10!,例5.7打印如下由星号组成的倒三角形。,*,#includevoidmain()inti,j,k;for(i=0;i4;i+)for(k=1;k=i;k+)printf(“”);for(j=0;j72*i;j+)printf(“*”);printf(“n”);,break语句形式:break;作用:switch循环语句中使用功能:与循环配合使用,终止正进行的循环,跳出循环体,执行循环体后的语句。,4)辅助语句:(break和continue),for(i=0;i10;i+).if(条件)break;.,#includevoidmain()inti,j;for(i=3;i=100;i+)for(j=2;j=i-1;j+)if(i%j=0)break;if(i=j)printf(%4d,i);printf(n);,例:求3100之间的所有素数。,continue语句形式:continue;作用:只用于循环体内.中断本次循环体的执行,立即执行下一次循环体。,辅助语句:,for(i=0;i10;i+).if(条件)continue;.,#includevoidmain()inti,j,s=0;printf(请输入10个整数:);for(i=0;i10;i+)scanf(%d,例4.21输入10个整数,将正数累加,例题:求数列:0,1,1,2,3,5,8,13,21,34,前40个数。其中:第一、二两个数为0、1,以后每个数是前两个数之和。,循环应用,#includevoidmain()intf1=0,f2=1,i,f;printf(“%d%d”,f1,f2);for(i=3;i=40;i+)f=f1+f2;printf(“%d”,f);f1=f2;f2=f;if(i%4=0)printf(“n”);,输出结果:01123581321345589144233377610,用下列公式计算的值:精度要求1e-6)pi=pi+t;n+=2;s=-s;t=s/n;pi=pi*4;printf(“pi=%10.6fn”,pi);,求:,例:编程输出右边图案:,122333444455555666666777777788888888999999999,#includevoidmain()inti,j;for(i=1;i10;i+)for(j=1;j=9-i;j+)printf(“);/输出每行前的空格for(j=1;j=i;j+)/输出各行值printf(“%2d”,i);printf(“n”);/换行,上机作业:.编程序输出200以内同时能被和整除的那些数2.编程序求当最后一项1e-6时停止计算,输出s和n的值3.用辗转相除法求两个正整数的最大公约数。*4.求sum=a+aa+aaa+aaaaa(其中a是1-9中的任意一位数),例:求两个正整数的最大公约数。辗转相除法,#includevoidmain()intm,n,r,m1,n1;printf(“输入两个正整数:”);scanf(“%d%d”,#includevoidmain()inti,a,t,sum;sum=0;t=0;printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论