C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计

上传人:E**** 文档编号:89383064 上传时间:2019-05-24 格式:PPT 页数:75 大小:520KB
返回 下载 相关 举报
C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计_第1页
第1页 / 共75页
C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计_第2页
第2页 / 共75页
C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计_第3页
第3页 / 共75页
C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计_第4页
第4页 / 共75页
C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计(第三版) 教学课件 ppt 作者 恰汗.合孜尔 第4章 循环结构程序设计(75页珍藏版)》请在金锄头文库上搜索。

1、,第4章 循环结构程序设计,在解决实际问题的过程中,常常会遇到一些需要重复处理的问题。循环结构可用来处理需要重复处理的问题,所以,循环结构又称为重复结构。,4.1 循环的概念 4.2 while 语句 4.3 dowhile循环 4.4 for循环 4.5 break语句和continue语句 4.6 多重循环 4.7 程序举例 4.8 三种循环语句的比较,第4章 循环结构程序设计,第 4 章,4.1 循环的概念,循环结构,又称为重复结构,是结构化程序设计的三种基本结构之一,在数值计算和很多问题的处理中都需要用到循环控制。例如,用迭代法求方程的根,计算全班同学的平均分等。几乎所有的应用程序都包

2、含循环,它和顺序结构、选择结构共同作为各种复杂结构程序的基本构造单元。因此熟练地掌握选择结构和循环结构的概念及使用,是程序设计最基本的要求。,4.1 循环的概念,例如,计算1100的累计和sum。 根据已有的知识,可以用sum=1+2+3+100来计算,但显然很繁琐。现在换个思路来考虑:首先设置一个累加器sum,其初值为0,利用sum=sum+i来计算(i依次取1、2、100),只要解决以下3个问题即可: 将i的初值置为1; 每执行1次sum=sum+i后,i值增1,其过程如下所示: sum=0; i=1; 重复执 行部分 sum=sum+i; i=i+1; 当i增到101时,停止计算。 此时

3、,sum的值就是1100的累计和。,语言提供了3种循环语句来实现: (1) while( )循环语句 (2) dowhile ( )循环语句; (3) for( )循环语句。 下面我们将分别介绍这三种循环语句。,4.1 循环的概念,4.2 while 语句,4.2 while 语句,while用来实现“当型”循环,其一般形式为: while(循环条件表达式) 循环体语句 在执行while语句时,先对循环条件表达式进行计算,若其值为非0(真),则反复执行循环体语句,直到循环条件表达式的值为0(假)时,循环结束,程序控制转至while循环语句的下一条语句。其执行过程如图4-1所示。,图4-1 wh

4、ile语句的执行过程,使用while语句时,应注意以下几个问题: 循环体语句可以是一个空语句、一个语句或一组语句。当循环体是一组语句时,则必须用花括号括起来,组成复合语句。,图4-2 计算1100累计和的流程图和N-S图描述,4.2 while 语句,#include void main() int i,sum; /* 定义整型变量i,sum */ sum=0; /* 将sum的初值置为0 */ i=1; /* 将i的初值置为1 */ while(i=100) /* 若i=100则执行循环体 */ sum=sum+i; /* 将i进行累加 */ i=i+1; /* i的值加1 */ print

5、f(“sum=%dn“,sum); /* 输出sum的值 */ ,程序运行结果: sum=5050,4.2 while 语句, while语句中的循环条件表达式可以是任何类型的表达式。 循环体内一定要有使表达式的值变为0(假)的操作,否则 循环将无限进行,即形成死循环。 while语句的特点是“先判断,后执行”,如果循环条件表达 式的值一开始就为0,则循环体语句一次也不执行。 例如,对于下面的语句: while(i-) printf(“%d “,i); 如果变量i赋值0时,则一次也不执行循环体语句;如果变量 i赋值4时,则其运行结果为: 3210。,4.2 while 语句,例4.1 利用公式

6、 求的近似值,直到最后一项的绝对值小于 为止。 分析:本题仍为求累加和问题,因此,循环体中有sum=sum+temp这样的求累加和表达式。temp为公式中的某一项,其特点是,分母为奇数,且相邻项符号相反,当|temp| 时,停止求累加和。的近似值pi可以表示为pi=4sum。,4.2 while 语句,(b) N-S图描述,图4-3 例4.1的流程图和N-S图描述,(a) 流程图描述,4.2 while 语句,#include #include void main() int sign=1; float i=1,temp=1,sum=0; while(fabs(temp)=1e-4) /* 当

7、满足条件时结束 */ sum=sum+temp; /* 计算通项并进行累加 */ i=i+2; /* i值加2得到下一个奇数 */ sign=-sign; /* 相邻项符号取反 */ temp=sign/i; /* 求公式中的某一项temp */ sum=4*sum; printf(“pi=%8.6fn“,sum); /* 输出pi的值 */ ,程序运行结果: pi=3.141397,4.2 while 语句,(a) 流程图描述,(b) N-S图描述,例 4.2 从键盘上连续输入字符,直到输入“回车”符为止,统计 输入的字符中数字字符的个数。,4.2 while 语句,#include voi

8、d main() char ch; int num=0; printf(“Press enter to end input n“); while(ch=getchar()!=n) /*按回车键时结束*/ if(ch=0 /* 输出数字字符的个数 */ ,程序运行结果: Press enter to end input 5!a66bc7 5667 num=4,4.2 while 语句,4.3 dowhile 循环,4.3 dowhile循环,dowhile用来实现“直到型”循环,其一般形式为: do 循环体语句 while(循环条件表达式); 执行过程是,先执行循环体语句,然后对循环条件表达式进

9、行计算,若其值为真(非0),则重复上述过程,直到循环条件表达式的值为假(0)时,循环结束,程序控制转至该结构的下一条语句。其执行过程如图4-5所示。,使用dowhile语句时,应注意以下几个问题: 当循环体是一组语句时,则必须用花括号括起来,组 成复合语句。 循环体内一定要有使表达式的值变为0(假)的操作, 否则循环将无限进行。 dowhile循环是先执行,后判断,因此循环体至少执 行一次。 do和while都是关键字,配合起来使用,while()后面的 “;”不可缺少。,4.3 dowhile循环,例4.3 用dowhile循环编写计算sum=1+2+3+100的程序。,(a) 流程图描述,

10、(b) N-S图描述,4.3 dowhile循环,#include void main( ) int sum=0,i=1; do /* 开始执行循环 */ sum=sum+i; /* 计算累加和 */ i+; /* i自加1 */ while(i=100); /* 如果i=100,则循环继续执行 */ printf(“sum=%dn“,sum); /* 输出累加和 */ ,程序运行结果: 5050,例4.3 用dowhile循环编写计算sum=1+2+3+100的程序。,4.3 dowhile循环,例4.4 输入若干名学生的某门课程的成绩,以负数作为结束输入的标志,计算该门课程的平均成绩。 首

11、先输入一个成绩,若输入负数,直接结束;否则使用循环结构计算总成绩sum=sum+score,同时统计学生人数num=num+1,最后计算平均成绩ave=sum/num。,4.3 dowhile循环,#include void main() int num=0; float score,sum=0,ave; printf(“input score of student:n“); scanf(“%f“, /* 输出平均成绩 */ ,程序运行结果: input score of student: 80 67 -1 average=73.50,4.3 dowhile循环,4.4 for循环,C 语言的

12、 for 循环使用最为灵活,功能很强。不仅可以用于计数型循环,而且可以用于条件型循环。完全可以代替 while 和 dowhile 循环。,4.4 for循环,for循环语句的一般形式为: for(表达式1;表达式2;表达式3) 循环体语句 其中,for是C语言的关键字,其后圆括号通常有3个表达式。表达式之间用分号隔开,表达式可以是C语言中任何合法的表达式。表达式1给循环变量赋初值;表达式2是循环条件;表达式3修改循环变量值。for后面的语句为循环体。循环体多于一条语句时,要用复合语句表示。,for循环语句的作用: 首先求解表达式1的值,然后求解表达式2的值,若表达式的值非0(真)时,就执行循

13、环体,执行一次循环体后求解表达式3的值,再求解表达式2的值,若表达式2仍不为0再执行循环体,再求解表达式3的值。如此反复直到表达式2的值为0时,整个循环结束。其执行过程如图所示。,4.4 for循环,for语句最简单的应用形式,也就是最易理解的形式: for(循环变量赋初值;循环条件;循环变量增值) 循环体语句,4.4 for循环,例4.5 用for循环编写计算sum=1+2+3+100的程序。,4.4 for循环,#include void main() int sum=0,i; /* 定义整型变量sum,i并对sum赋初值 */ for(i=1;i=100;i+) sum=sum+i; /

14、* 通过for循环对i进行累加 */ printf(“sum=%dn”,sum); /* 输出累加和 */ ,4.4 for循环,使用 for 循环时,for 语句中的表达式可以部分或全部省略,但两个“;”不可省略。 省略表达式1,这时没有了给循环变量赋初值的操作,则应 该在for语句之前给循环变量赋初值。 例如: i=1; /* 对循环变量i赋初值 */ for( ;i=100;i+) /*省略了表达式1 */ sum=sum+i; 省略表达式2,相当于缺少条件判断,循环将无限进行,因 此如果缺少表达式2,可以认为表达式2始终为真。,4.4 for循环, 省略表达式3,则可以把循环变量的修改

15、部分放到循环体 中进行。 例如: for(i=1;i=100; ) /* 省略了表达式3 */ sum=sum+i; i+; /* 在循环体内改变循环变量i的值 */ 省略表达式1和表达式3,相当于在循环中只有表达式2, 即只给出循环结束的条件。这时可以采用上述和中的 方法,保证循环正常结束。 三个表达式全部省略,for( ; ; )相当于while(1)。,4.4 for循环,例4.6 用for循环编写计算n!的程序。 由于是个连乘的重复过程,每次循环完成一次乘法,共循环次。在前面我们对计算累加和采用了“sum=sum+第i项”的循环算式,类似对于连乘可以采用“t=t*第i项”的循环算式,其中第

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号