高级C语言循环结构程序设计.ppt_第1页
高级C语言循环结构程序设计.ppt_第2页
高级C语言循环结构程序设计.ppt_第3页
高级C语言循环结构程序设计.ppt_第4页
高级C语言循环结构程序设计.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1,高级语言程序设计,孟宇龙计算机科学与技术学院mengyulong,2,第5章循环结构程序设计,本章需要掌握的内容掌握3种基本循环。掌握多重循环。掌握continue和break的使用。编写循环结构程序。,3,5.1引言,什么是循环?为什么要使用循环?,问题1:,问题2:求学生平均成绩分数相加后除以课数,在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。,4,goto语句以及用goto语句构成循环,goto语句为无条件转向语句,它的一般形式为goto语句标号;语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。例如:gotolabel_1;合法;goto123;不合法。,5,一般来说,goto语句可以有两种用途:(1)与if语句一起构成循环结构;(2)从循环体中跳转到循环体外。但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。,6,goto语句举例,用if语句和goto语句构成循环,求1到100的和。,voidmain()inti,sum=0;i=1;loop:if(i=100)sum=sum+i;i+;gotoloop;printf(%dn,sum);,结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差。,7,8,5.2循环的实现方法,三种:while、dowhile、for每种循环都需要下面的元素:循环变量循环体循环的判断条件,9,5.2.1while循环,while语句用来实现“当型”循环结构。一般形式:while(表达式)循环体语句;,10,求1到100的和(while循环),#includevoidmain()inti,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);,11,例5.1从键盘输入一组学生成绩,若输入的成绩大于或等于0,将其累加到总成绩上,若成绩小于0,停止输入,然后计算并输出平均成绩。,12,5.2.2for循环,一般形式,for(expr1;expr2;expr3)循环体语句;,13,for(循环变量赋初值;循环条件;循环变量增值)循环体语句;,for语句等价于下列语句:表达式1;while(表达式2)语句;表达式3;,14,例5.2求1到100的和(for循环),#includevoidmain()inti,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(%dn,sum);,15,例5.3从键盘输入10个整型数据,找出其中最大数和最小数。,16,for语句的说明,(1)for语句的一般形式中的“表达式1”可以省略。for(;i=100;i+)sum=sum+i;(2)表达式2省略,即不判断循环条件。for(i=1;i+)sum=sum+i;(3)表达式3也可以省略。for(i=1;i=100;)sum=sum+i;i+;,17,for语句的说明,(4)可以只有表达式2,即只给循环条件。for(;i=100;)while(i=100)sum=sum+i;相当于sum=sum+i;i+;i+;(5)3个表达式都可省略。for(;)语句;相当于while(1)语句;,18,for语句的说明,(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。for(sum=0;i=100;i+)sum=sum+i;for(sum=0,i=1;i=100;i+)sum=sum+i;for(i=0,j=100;i=j;i+,j-)k=i+j;,19,for语句的说明,(7)表达式一般是关系表达式(如i=100)或逻辑表达式(如ab,20,5.2.3dowhile循环,dowhile语句的特点先执行循环体,然后判断循环条件是否成立。一般形式:do循环体语句;while(表达式);执行流程,21,求1到100的和(dowhile),#includevoidmain()inti,sum=0;i=1;dosum=sum+i;i+;while(ib,再计算a和b的余数,执行;b是最大公约数。求解最大公约数是一个循环过程,循环条件是余数r不为0;循环体包含三个操作:b=a,r=b,计算a和b的余数。数据结构定义三个变量。变量a、b分别存储两个原始数据,变量r存储余数。,5.4程序举例,#includestdio.hvoidmain()inta,b,r;scanf(%d%d,图5.20例5.10运行结果,5.4程序举例,例5.11打印输出fibonacci数列的前20项,每行输出5个数据。fibonacci数列的通项如下:,问题分析:循环体可分为三部分:计算、输出、为下一次循环做准备。计算主要是根据前两项计算当前项。输出部分首先输出当前项,然后控制换行操作。如果当前计算、输出的是第i项,其前两项分别是第i-1项和i-2项;当进入一下次循环时,计算、输出的是第i+1项,它的前两项分别是第i项和第i-1项,在计算第i+1项前,应先将第i项和第i-1项的值存入表示前两项的变量中,这是计算、输出第i+1项前的准备工作。,5.4程序举例,#includevoidmain()doublex1,x0,f,f1;x1=1.5;dox0=x1;f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;while(fabs(x1-x0)=1e-5);printf(therootofequationis5.2fn,x1);,图5.25例5.12运行结果,5.4程序举例,例5.13打印输出下面的图形,行数由键盘输入(行数=9)。,1121123211234321123454321,先分析图形的特点:图形的行数(n),每的字符数,每字符的起始位置。本例图形有n行,第i行有2*i-1个字符,第i行字符的起始位置是n-i+1(即每行前有n-i个空格)。每行字符的变化有规律:12i21。,因此:本例的外层

温馨提示

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

评论

0/150

提交评论