C语言课件第05章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言课件第05章.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 05
- 资源描述:
-
1、5.1 循环结构问题的提出循环结构问题的提出5.2 解决单重循环的问题解决单重循环的问题5.3 解决多重循环的问题解决多重循环的问题5.4 简单的程序调试简单的程序调试在用计算机解决大量的实际问题时,在用计算机解决大量的实际问题时,经常会遇到如下许多重复运算的问题。经常会遇到如下许多重复运算的问题。(1)求某一同学一学期的平均分。)求某一同学一学期的平均分。解决方法是将该同学这一学期所有考核成解决方法是将该同学这一学期所有考核成绩累加,再除以考核门数,就得到该生的绩累加,再除以考核门数,就得到该生的平均分。平均分。(2)计算:)计算:1*2*3*n。这是一个累。这是一个累乘的问题,每个乘数与前
2、面的一个数都有乘的问题,每个乘数与前面的一个数都有固定的关系(后面的数比前面的数大固定的关系(后面的数比前面的数大1)。)。因此每次累乘的数都是前面的数加因此每次累乘的数都是前面的数加1,方法,方法相同,实际这是一个重复累乘的问题。相同,实际这是一个重复累乘的问题。这一类问题,重复的次数有些情况是这一类问题,重复的次数有些情况是已知的,有些情况是未知的。但是这些问已知的,有些情况是未知的。但是这些问题都带有重复性的工作,解决这类问题,题都带有重复性的工作,解决这类问题,采用循环结构最为适当。采用循环结构最为适当。有些问题,采用单重循环就能解决,有些问题,采用单重循环就能解决,比如上面所举的两个
3、例子,都可以采用单比如上面所举的两个例子,都可以采用单重循环;而有些问题,比如说二维表格数重循环;而有些问题,比如说二维表格数据输出的问题,则需要采用双重循环才能据输出的问题,则需要采用双重循环才能解决。解决。C语言提供了三种实现循环结构的语语言提供了三种实现循环结构的语句,它们分别是:句,它们分别是:while语句、语句、do-while语语句和句和for语句,三种循环语句各有不同的特语句,三种循环语句各有不同的特点,我们可以灵活使用。点,我们可以灵活使用。while循环语句的形式如下:循环语句的形式如下:while(表达式)循环体语句(表达式)循环体语句while循环语句的执行过程如图循环
4、语句的执行过程如图5-1所所示。示。图图5-1 while语句的执行语句的执行说明说明(1)用)用while语句构成的是语句构成的是“当型当型”循环结构,它的特点是:循环结构,它的特点是:“先判断,后执先判断,后执行行”,如果表达式的最初值为,如果表达式的最初值为0,则循环体,则循环体语句一次也不执行。只有当表达式的值为语句一次也不执行。只有当表达式的值为非非0时,才能执行循环体语句。执行完循环时,才能执行循环体语句。执行完循环体语句后,再返回循环的开始部位,判断体语句后,再返回循环的开始部位,判断表达式的值,决定是否继续循环。表达式的值,决定是否继续循环。(2)循环体语句只能是一条语句,)循
5、环体语句只能是一条语句,如需要使用多条语句,必须采用复合语句如需要使用多条语句,必须采用复合语句的形式。的形式。(3)循环体内一定要有能够改变表)循环体内一定要有能够改变表达式的值的操作,最终使其表达式的值变达式的值的操作,最终使其表达式的值变为为0,否则将形成无休止的,否则将形成无休止的“死死”循环。循环。例例5 5.11 求:求:1+2+3+n的累加求和的累加求和的值。的值。问题分析:问题分析:(1)我们首先需要设置一个存放累)我们首先需要设置一个存放累加求和的变量加求和的变量sum,每一次加一个数放入,每一次加一个数放入变量变量sum中;中;(2)再设置一个存放加数的变量)再设置一个存放
6、加数的变量i,每一次累加时被加的数均需比前一个数大每一次累加时被加的数均需比前一个数大1;(3)最后还需设置一个结束累加的)最后还需设置一个结束累加的变量变量n,确定累加到什么数为止。,确定累加到什么数为止。根据以上分析,写出源程序如下:根据以上分析,写出源程序如下:main()int i,n,sum;i=1;sum=0;printf(Please input n:);scanf(%d,&n);while(i=n)/*累加的数累加的数i 小于或等小于或等于终止数于终止数n就循环累加,否则结束循环就循环累加,否则结束循环*/sum=sum+i;i+;printf(sum=%dn,sum);说明说
7、明(1)存放累加求和的变量)存放累加求和的变量sum,说明,说明后必须赋初值,一般为后必须赋初值,一般为0,否则由于说明的,否则由于说明的变量其原有初值不确定,导致结果有误。变量其原有初值不确定,导致结果有误。(2)程序中)程序中sum=sum+i;语句是一个语句是一个累加求和功能的语句,它是将变量累加求和功能的语句,它是将变量sum中中的数值加上变量的数值加上变量i中的数值,求和后再放入中的数值,求和后再放入变量变量sum中,此时变量中,此时变量sum中存放的数值已中存放的数值已经变为新的数值,原有数值已被覆盖掉。经变为新的数值,原有数值已被覆盖掉。以上程序运行情况如下:以上程序运行情况如下
8、:Please input n:100 sum=5050do-while 循环语句的形式如下:循环语句的形式如下:do 循环体语句循环体语句 while(表达式)(表达式);do-while语句的执行过程如图语句的执行过程如图5-2所示。所示。图图5-2 do-while语句的执行过程语句的执行过程说明说明(1)用)用do-while语句构成的仍是语句构成的仍是“当当型循环型循环”结构。它的特点是:结构。它的特点是:“先执行,先执行,后判断后判断”。遇到。遇到do关键字后,首先执行循关键字后,首先执行循环体语句,然后计算表达式的值,如表达环体语句,然后计算表达式的值,如表达式的值为非式的值为非
9、0,则继续执行循环体语句,然,则继续执行循环体语句,然后再计算表达式的值,如表达式的值为后再计算表达式的值,如表达式的值为0,则结束循环,执行则结束循环,执行do-while语句后面的语语句后面的语句。因此这种循环结构,最少也可以执行句。因此这种循环结构,最少也可以执行一次循环体语句。一次循环体语句。(2)循环体语句仍然只能是一条语)循环体语句仍然只能是一条语句,如需要使用多条语句,必须采用复合句,如需要使用多条语句,必须采用复合语句的形式。语句的形式。(3)循环体语句中也一定要有改变)循环体语句中也一定要有改变表达式的值的操作,最终使其表达式的值表达式的值的操作,最终使其表达式的值变为变为0
10、,结束循环。否则将成为,结束循环。否则将成为“死死”循环。循环。(4)在关键字)在关键字while的小括号的后面,的小括号的后面,一定要加分号一定要加分号“;”,千万不能忘记,它,千万不能忘记,它表示表示do-while语句到此结束。语句到此结束。例例 5 5.2 2 求:求:n!,即 计 算,即 计 算123n的值。的值。源程序如下:源程序如下:main()int i,n,s;i=1;s=1;printf(Please input n:);scanf(%d,&n);do s=s*i;/*使用使用“累乘累乘”的公式的公式*/i+;while(i=n);printf(%d!=%dn,n,s);说
11、明说明(1)存放累乘求和的变量)存放累乘求和的变量s,说明后,说明后必须赋初值,一般为必须赋初值,一般为1,否则由于说明的变,否则由于说明的变量其原有初值不确定,导致结果有误。量其原有初值不确定,导致结果有误。(2)程序中)程序中s=s*i;语句是一个累乘语句是一个累乘求和功能的语句,它是将变量求和功能的语句,它是将变量s中的数值乘中的数值乘上变量上变量i中的数值,累乘后再放入变量中的数值,累乘后再放入变量s中,中,此时变量此时变量s中存放的数值已经变为新的数值,中存放的数值已经变为新的数值,原有数值已被覆盖掉。原有数值已被覆盖掉。以上程序运行情况如下:以上程序运行情况如下:Please in
展开阅读全文