c程序设计__循环结构程序设计

c程序设计__循环结构程序设计

ID:18687966

大小:347.00 KB

页数:21页

时间:2018-09-21

c程序设计__循环结构程序设计_第1页
c程序设计__循环结构程序设计_第2页
c程序设计__循环结构程序设计_第3页
c程序设计__循环结构程序设计_第4页
c程序设计__循环结构程序设计_第5页
资源描述:

《c程序设计__循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章循环结构程序设计许多问题的求解归结为重复执行的操作,例如输入多个同学的成绩、对象遍历、迭代求根等问题。这种重复执行的操作在程序设计语言中用循环控制来实现。几乎所有实用程序都包含循环。特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。根据开始循环的初始条件和结束循环的条件不同,C语言中用如下语句实现循环(1)while语句。(2)do-while语句。(3)for语句。(4)用goto语句和if语句构成循环。循环结构在程序设计中十分重要。所谓循环结构就是当给定条件成立时,反复执行某段程序,直到条件不成立时为

2、止。给定的条件称为循环条件,反复执行的程序段称为循环体。6.1while语句while语句最简单的情况为循环体只有一个语句,其形式如下:while(表达式)语句;但是,while语句通常使用更复杂的形式,也就是其一般形式: while(表达式){语句序列;}其中表达式是循环条件,语句序列为循环体。其执行过程是:先计算while后面圆括号内表达式的值,如果其值为真(非0),则执行语句序列(循环体),然后再计算while后面圆括号内表达式的值,并重复上述过程,直到表达式的值为“假”(值为0)时,退出循环,并转入下一语句

3、去执行。While循环的执行流程如图6-1所示。使用while语句时,需注意如下几个问题:(1)while语句的特点是先判断表达式的值,然后根据表达式的值决定是否执行循环体中的语句,因此,如果表达式的值一开始就为“假“,则循环体将一次也不执行。(2)当循环体由多各语句组成时,必须用左、右花括号括起来,使其形成复合语句。如:while(x>0){s+=xx--;}21(3)为了使循环最终能够结束,而不至于使循环体语句无穷执行,即产生“死循环”。因此,每执行一次循环体,条件表达式的值都应该有所变化,这既可以在表达式本身中实现,也可以

4、在循环体中实现。【例6-1】利用while语句,编写程序,求1+2+3+…+100的值。这是一个求100个数的累加和问题,加数从1变化到100,可以看到加数是有规律变化的。后一个加数比前一个加数增1,第一个加数为1,最后一个加数为100;因此可以在循环中使用一个整型变量i,每循环一次使i增1,一直循环到i的值超过100,用这个办法就解决了所需的加数问题;但是要特别注意的是变量i需要有一个正确的初值,在这里它的初值应当设定为0。下一个要解决的是求累加和。设用一个变量sum来存放这100个数和的值,可以先求0+1的和并将其放在sum

5、中,然后把sum中的数加上2再存放在sum中,依次类推,这和人们心算的过程没有什么区别,sum代表着人们脑中累加的那个和数,不同的是心算的过程由人们自己控制。在这里,sum累加的过程要放在循环中,由计算机来判断所加的数是否已经超过100,加数则放在变量i中,并在循环过程中一次次增加1。整个流程如图6-2所示。图6-2累加求和流程图以下就是求累加和的典型算法。main(){inti=1,sum=0;/*i的初值为1,sum的初值为0*/while(i<=100)/*当i小于或等于100时执行循环体*/{sum=sum+i;/*在循

6、环体中累加一次,i增加1*/i=i+1;/*在循环体中i增加1*/}printf("sum=%d",sum);}程序运行后的输出结果:sum=5050注意:(1)如果在第一次进入循环时,while后圆括号内表达式的值为0,循环一次也不执行。在本程序中,如果i的初值大于100将使表达式i<=100的值为0,循环体不执行。(2)在循环体中一定要有使循环趋向结束的操作,以上循环体内的语句i=i+1使i不断增加1,当i>100时循环结束。如果没有这一语句,则i的值始终不变,循环将无限进行。(3)在循环体中,语句的先后位置必须符合逻辑

7、,否则将会影响运算结果,例如,若将上例中的While循环体改写成:while(i<=100){i++;/*先计算i++,后计算sum的值*/21sum=sum+i;}运行后,将输出:sum=5150运行的过程中,少加了第一项的值1,而多加了最后一项的值101。【例6-2】利用while语句,计算1+1/2+1/4+…+1/50的值,并显示出来。#include“stdio.h”main(){floatsum=1;inti=2;while(i<=50){sum+=1/(float)i;i+=2;}printf("sum=%f",s

8、um);}运行结果:sum=2.907979注意:在此程序中,在循环体中进行累加计算时,必须要对变量i进行强制类型转换,即利用(float)i使其变为浮点型中间变量后再参加运算,否则,由于i中存放的是大于1的整型量,所以,1/i将按整型规则运算,其结果总是为0。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。