欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言程序设计06章循环结构程序设计.ppt

    • 资源ID:6504019       资源大小:312.99KB        全文页数:32页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计06章循环结构程序设计.ppt

    1,第六章 循环结构程序设计,6.1 概述循环结构主要有:(1)用goto语句和if语句构成循环;(2)用while语句;(3)用do-while语句;(4)用for语句。,2,6.2 goto语句以及用goto语句构成循环 goto语句为无条件转向语句,它的一般形式为:goto 语句标号;(1)语句标号用标识符表示。标识符的命名规则和变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线,不能用整数来作标号;(2)goto语句通常有两种用途:1.与if语句一起构成循环结构;2.从循环体中跳转到循环体外;(3)goto语句的使用不符合结构化程序的原则,一般尽量不用,除非万不得已。,3,例6.1 用if语句和goto语句构成循环,求main()int i,sum=0;i=1;loop:if(i=100)sum=sum+i;i+;goto loop;printf(“%d”,sum);,4,6.3 while语句,一般形式:while(表达式)内嵌语句特点:先判断表达式,当它为真(非0)时,再执行内嵌语句;若为假(0),则不执行内嵌语句。这样的循环结构我们称为“当型”循环结构。流程图:,表达式,内嵌语句,非0,0,5,例6.2 求main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(“%d”,sum);,说明:1)如果循环体不只包含一条语句,则应用花括号括起来形成一个复合语句。2)在循环体中应有使循环趋于结束的语句,避免出现死循环。在本例中,设置循环条件为i=100,然后有 i+使循环趋于结束,这样就不会出现死循环。,6,main()int n=0;while(n+=1)printf(“%d n”,n);printf(“%d n”,n);运行结果:,说明:(补充内容)3)用作循环条件的表达式可以是各种类型的表达式或数值类型。如:while(1)、while(2)、while(a)等。4)小心循环变量的“边界值”,注意循环次数。对条件表达式的计算次数要比循环体的执行次数多一次。如右例:,7,main()int i,sum=0;i=1;while(i=100);sum=sum+i;i+;printf(“%d”,sum);则程序将出现“死”循环,无法得到正确结果。,此分号使 while 的循环体为空,说明:5)不要在 while(表达式)后加分号。如例6.2若误写成:,8,6.4 do-while语句,一般形式:do 循环体语句 while(表达式);,循环体语句,表达式,非0,0,流程图:,9,例 6.3 用do-while语句求main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);/*别忘了,这里有分号*/printf(“%d”,sum);,10,讨论:while语句与do-while语句之间的异同点1)对同一问题可以用while语句处理,也可以用do-while语句处理。do-while结构和while结构可以相互转换。我们可以认为do-while结构是由一个复合语句(while结构的循环体)加一个while结构构成。比如:,do sum=sum+i;i+;while(i=100);,sum=sum+i;i+;while(i=100)sum=sum+i;i+;,11,2)在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分一样,则它们的结果也一样。但是,对于while后面的表达式一开始就为0值时,两种循环结构的执行结果是不同的。对于while语句,循环体可能一次也不执行;而do-while语句,循环体至少要执行一次。对于while语句,循环体的执行次数要比循环条件的判断次数少一次;而do-while语句,循环体的执行次数和循环条件的判断次数是相同的。,12,6.5 for语句,一般形式:for(表达式1;表达式2;表达式3)语句,for(表达式1;表达式2;表达式3)语句,执行过程:,13,求解表达式1,求解表达式2,真,语句,求解表达式3,假,for语句的下一语句,流程图:,14,例:for(i=1;i=100;i+)sum=sum+i;,i=1,i=100,真,sum=sum+i,i+,假,15,说明:(1)表达式1可以省略,此时应在for语句之前给循环变量赋初值(设定循环初始条件)。比如:for(i=1;i=100)break;,16,(3)表达式3可以省略,但此时应另外设法修改循环变量,保证循环能正常结束。比如:for(i=1;i100)break;,17,(5)表达式1、2、3都可以为任何表达式。比如:表达式1和表达式3可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。例1:for(i=1,sum=0;i=100;i+)sum=sum+i;,例2:for(i=0;(c=getchar()!=n;i+);/*分号不能少*/请问:此语句的作用是什么?,此语句的作用是不断读入字符,并统计所输入字符的个数,直到输入一个“换行符”为止。,18,请问:int i,j,k=0;for(i=1,j=100;i=j;i+,j-)k=i+j;printf(“%d,%d,%d”,i,j,k);输出结果是什么?循环体可以被执行多少次?,19,例如:int i,j,k=0;for(i=0,j=100;i=j;i+,j-)k+=i+j;printf(“%d,%d,%d”,i,j,k);输出结果是什么?循环体可以被执行多少次?,20,讨论:for语句与while语句之间的异同点1)for语句简单、方便,使用灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以取代while语句。在使用上,for语句更灵活,功能更强。2)for语句和while语句之间是可以相互转换的。当省略for语句的表达式1、3,而只给出表达式2时,就等同于一个while语句。比如:,for(;i=100;)sum=sum+i;i+;,while(i=100)sum=sum+i;i+;,21,6.6 循环的嵌套,C语言中,允许三种循环结构(while循环、do-while循环和for循环)相互嵌套和进行多层嵌套。例如:for(i=0;i10;i+)for(j=0;j10;j+)for(k=0;k10;k+)printf(“i=%d,j=%d,k=%dn”,i,j,k);此程序运行后,屏幕上将输出多少行信息?这些信息分别是什么?,22,6.7 四种循环结构之间的比较(前已提及),6.8 break语句和continue语句,6.8.1 break语句一般形式:break;作用:只能用于循环结构和switch结构,使执行流程从相应结构中跳出,程序继续往后执行。,例:for(r=1;r100)break;printf(“%f”,area);,23,6.8.2 continue语句一般形式:continue;作用:结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环体的判断。contiune语句和break语句的区别是:contiune语句只是结束本次循环,即跳过本次循环体中下面尚未执行的部分;而break语句是终止整个循环,即退出循环结构。详细的流程图分析,可参见教科书P115之图6.10和图6.11.例如:,24,例6.5 输出100200之间的不能被3整除的所有数;main()int n;for(n=100;n=200;n+)if(n%3=0)continue;printf(“%d”,n);,25,6.9 程序举例,例 6.6 用 求 的近似值,直到最后一项的绝对值小于10-6为止。N-S流程图见左下方。,变量说明:s为分子,也用来切换正负号;n为分母;t为相加项;,26,源程序如下:,#include main()int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(“pi=%10.6fn”,pi);,注意几点:1、s 和n 可同时定义为int 或者float 型吗?为什么?(P116.c)2、若将n、t、pi 定义为double 型,精度提高到1e 8,会有什么效果?(P116_2.c),27,例6.7 求Fibonacci数列的前40个数。Fibonacci数列通式为:,例如,前面几项分别为:1,1,2,3,5,8,13,这是一个古典的数学问题,比较简单。在P116117和P124均有论述。请同学们掌握。,N-S 流程图为:,28,源程序为:,main()long int f1,f2;int i;f1=1;f2=1;for(i=1;i=20;i+)printf(“%12ld%12ld”,f1,f2);if(i%2=0)printf(“n”);f1=f1+f2;/*前一个数*/f2=f2+f1;/*后一个数*/,29,例6.8 判断m是否为素数。,定义:m 是素数的条件是不能被2,3,m-1整除。这也是素数的原始定义。据此,有如下判断素数的算法:,算法1:直接采用定义,用m去除以2 到m-1。但是,当m很大时此算法的运算量也很大,效率不高。,30,源程序如下:,#includemain()int m,i,k;scanf(“%d”,31,例6.10 译密码。对字符的处理办法为:先判定它是大写字符还是小写字符,然后再将其值加4,变成其后的第四个字母。如果加4后字符值大于Z或z,则在加4的基础上减去26,转换为字母表前面的字母。(参见P119图6.15),#include main()char c;while(c=gechar()!=n)if(c=a,例6.9 求100-200间的全部素数。(算法同例6.8),这里为什么要这样写,请看附录I ASCII码表。,32,第六章 循环控制 小结,6.1 概述 6.2 goto语句以及用goto语句构成循环6.3 while语句 6.4 do-while语句6.5 for语句 6.6 循环的嵌套 6.7 几种循环的比较6.8 break和continue语句 6.9 程序举例,

    注意事项

    本文(C语言程序设计06章循环结构程序设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开