第5部分循环结构的程序设计方案.ppt
《第5部分循环结构的程序设计方案.ppt》由会员分享,可在线阅读,更多相关《第5部分循环结构的程序设计方案.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5部分循环结构的程序设计方案 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望5.1 循环结构问题的提出循环结构问题的提出在在用用计计算算机机解解决决大大量量的的实实际际问问题题时时,经常会遇到如下许多重复运算的问题。经常会遇到如下许多重复运算的问题。(1)求求某某一一同同学学一一学学期期的的平平均均分分。解解决决方方法法是是将将该该同同学学这这一一学学期期所所有有考考核核成成绩绩累累加加,再再除除以以考考核核门门数数,就就得得到到该该生生的的平平均分。均分。(2
2、)计计算算:1*2*3*n。这这是是一一个个累累乘乘的的问问题题,每每个个乘乘数数与与前前面面的的一一个个数数都都有有固固定定的的关关系系(后后面面的的数数比比前前面面的的数数大大1)。因因此此每每次次累累乘乘的的数数都都是是前前面面的的数数加加1,方方法法相同,实际这是一个重复累乘的问题。相同,实际这是一个重复累乘的问题。这这一一类类问问题题,重重复复的的次次数数有有些些情情况况是是已已知知的的,有有些些情情况况是是未未知知的的。但但是是这这些些问问题题都都带带有有重重复复性性的的工工作作,解解决决这这类类问问题题,采用循环结构最为适当。采用循环结构最为适当。有有些些问问题题,采采用用单单重
3、重循循环环就就能能解解决决,比比如如上上面面所所举举的的两两个个例例子子,都都可可以以采采用用单单重重循循环环;而而有有些些问问题题,比比如如说说二二维维表表格格数数据据输输出出的的问问题题,则则需需要要采采用用双双重重循循环环才才能能解决。解决。C语语言言提提供供了了三三种种实实现现循循环环结结构构的的语语句句,它它们们分分别别是是:while语语句句、do-while语语句句和和for语语句句,三三种种循循环环语语句句各各有有不不同同的的特特点,我们可以灵活使用。点,我们可以灵活使用。5.2 解决单重循环的问题解决单重循环的问题5.2.15.2.1whilewhile循环语句循环语句whi
4、le循环语句的形式如下:循环语句的形式如下:while(表达式)循环体语句表达式)循环体语句while循循环环语语句句的的执执行行过过程程如如图图5-1所所示。示。图图5-1 while语语句句的的执执行行说明说明(1)用用while语语句句构构成成的的是是“当当型型”循循环环结结构构,它它的的特特点点是是:“先先判判断断,后后执执行行”,如如果果表表达达式式的的最最初初值值为为0,则则循循环环体体语语句句一一次次也也不不执执行行。只只有有当当表表达达式式的的值值为为非非0时时,才才能能执执行行循循环环体体语语句句。执执行行完完循循环环体体语语句句后后,再再返返回回循循环环的的开开始始部部位位
5、,判判断断表表达达式式的值,决定是否继续循环。的值,决定是否继续循环。(2)循循环环体体语语句句只只能能是是一一条条语语句句,如如需需要要使使用用多多条条语语句句,必必须须采采用用复复合合语语句句的的形式。形式。(3)循循环环体体内内一一定定要要有有能能够够改改变变表表达达式式的的值值的的操操作作,最最终终使使其其表表达达式式的的值值变变为为0,否则将形成无休止的,否则将形成无休止的“死死”循环。循环。例例5.15.1 求求:1+2+3+n的的累累加加求求和和的的值。值。问题分析:问题分析:(1)我我们们首首先先需需要要设设置置一一个个存存放放累累加加求求和和的的变变量量sum,每每一一次次加
6、加一一个个数数放放入入变变量量sum中;中;(2)再再设设置置一一个个存存放放加加数数的的变变量量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就循环累加,否则结束循环就循环累加,否则
7、结束循环*/sum=sum+i;i+;printf(sum=%dn,sum);说明说明(1)存存放放累累加加求求和和的的变变量量sum,说说明明后后必必须须赋赋初初值值,一一般般为为0,否否则则由由于于说说明明的的变量其原有初值不确定,导致结果有误。变量其原有初值不确定,导致结果有误。(2)程程序序中中sum=sum+i;语语句句是是一一个个累累加加求求和和功功能能的的语语句句,它它是是将将变变量量sum中中的的数数值值加加上上变变量量i中中的的数数值值,求求和和后后再再放放入入变变量量sum中中,此此时时变变量量sum中中存存放放的的数数值值已已经变为新的数值,原有数值已被覆盖掉。经变为新的
8、数值,原有数值已被覆盖掉。以上程序运行情况如下:以上程序运行情况如下:Please input n:100 sum=50505.2.25.2.2do-whiledo-while循环语句循环语句do-while 循环语句的形式如下:循环语句的形式如下:do 循环体语句循环体语句 while(表达式)表达式);do-while语句的执行过程如图语句的执行过程如图5-2所示。所示。图图5-2 do-while语句的执行过程语句的执行过程说明说明(1)用用do-while语语句句构构成成的的仍仍是是“当当型型循循环环”结结构构。它它的的特特点点是是:“先先执执行行,后后判判断断”。遇遇到到do关关键键
9、字字后后,首首先先执执行行循循环环体体语语句句,然然后后计计算算表表达达式式的的值值,如如表表达达式式的的值值为为非非0,则则继继续续执执行行循循环环体体语语句句,然然后后再再计计算算表表达达式式的的值值,如如表表达达式式的的值值为为0,则则结结束束循循环环,执执行行do-while语语句句后后面面的的语语句句。因因此此这这种种循循环环结结构构,最最少少也也可可以以执执行行一一次次循循环体语句。环体语句。(2)循循环环体体语语句句仍仍然然只只能能是是一一条条语语句句,如如需需要要使使用用多多条条语语句句,必必须须采采用用复复合合语句的形式。语句的形式。(3)循循环环体体语语句句中中也也一一定定
10、要要有有改改变变表表达达式式的的值值的的操操作作,最最终终使使其其表表达达式式的的值值变为变为0,结束循环。否则将成为,结束循环。否则将成为“死死”循环。循环。(4)在在关关键键字字while的的小小括括号号的的后后面面,一一定定要要加加分分号号“;”,千千万万不不能能忘忘记记,它它表表示示do-while语句到此结束。语句到此结束。例例5.25.2 求求:n!,即即计计算算123n的值。的值。源程序如下:源程序如下:main()int i,n,s;i=1;s=1;printf(Please input n:);scanf(%d,&n);do s=s*i;/*使用使用“累乘累乘”的公式的公式*
11、/i+;while(i=n);printf(%d!=%dn,n,s);说明说明(1)存存放放累累乘乘求求和和的的变变量量s,说说明明后后必必须须赋赋初初值值,一一般般为为1,否否则则由由于于说说明明的的变变量其原有初值不确定,导致结果有误。量其原有初值不确定,导致结果有误。(2)程程序序中中s=s*i;语语句句是是一一个个累累乘乘求求和和功功能能的的语语句句,它它是是将将变变量量s中中的的数数值值乘乘上上变变量量i中中的的数数值值,累累乘乘后后再再放放入入变变量量s中中,此此时时变变量量s中中存存放放的的数数值值已已经经变变为为新新的的数数值值,原有数值已被覆盖掉。原有数值已被覆盖掉。以上程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 循环 结构 程序设计 方案
限制150内