第05章 循环结构程序设计

第05章 循环结构程序设计

ID:6148907

大小:842.00 KB

页数:48页

时间:2017-11-14

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

《第05章 循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、辽宁科技大学资源与土木工程学院测绘教研室第5章循环结构程序设计C语言程序设计(第2版)主要内容5.1程序中需要用循环结构5.2while语句和do…while语句5.3for语句5.4循环的嵌套5.5提前结束循环5.6几种循环的比较5.1程序中需要用循环结构循环结构就是用来处理需要重复处理的问题,所以,循环结构又称为重复结构。循环有两种:一种是无休止的循环,如地球围绕太阳旋转,永不终止;另一种是有终止的循环,达到一定条件循环就结束。计算机程序只处理有条件的循环。5.1程序中需要用循环结构要构成一个有效的循环,应当指定两个条件:(1)需要重复执行的操作

2、,这称为循环体;(2)循环结束的条件,即在什么情况下停止重复的操作。for语句while语句do-while语句5.1程序中需要用循环结构循环的三种语句5.2while语句和do…while语句while循环格式:while(表达式)语句其中的语句可以是一条语句,或相当于一条语句的复合语句,称为循环体。while语句的执行过程为:(1)计算表达式的值;(2)判断表达式的值,若为非0,则执行循环体;若为0,则结束循环,执行while语句后面的语句;(3)执行完循环体转步骤(1)。5.2.1用while语句实现循环5.2.1用while语句实现循环例5.

3、1#includevoidmain(){inti,sum=0;/*sum是用来存放累加和的变量,初值为0*/i=1;while(i<=100)/*当i小于或等于100时,执行下面大括号中的复合语句*/{sum=sum+i;/*将i的当前值累加到变量sum中*/i++;/*使i的值加1*/}printf("%d",sum);}5.2.1用while语句实现循环注意:(1)循环体如果包含一个以上的语句,应该用大括号括起来,以复合语句形式出现。如不加大括号,则while语句的范围只到while后面的第一个分号处。(2)在循环体中应有使

4、循环趋向于结束的语句,程序设计中应避免出现“死循环”。5.2.2用do…while语句实现循环do-while语句的一般格式为:do循环体语句while(表达式);do-while语句的执行过程为:(1)先执行循环体语句;(2)再判断表达式的值,若值为0,则结束循环,执行do-while语句后面的语句;若值为非0,则继续执行循环体。例5.2#includevoidmain(){inti,sum=0;/*sum是用来存放累加和的变量,初值为0*/i=1;do/*当循环开始时不检查条件,先执行一次循环体*/{sum=sum+i;/*将i

5、的当前值累加到变量sum中*/i++;/*使i的值加1*/}while(i<=100);printf("%d",sum);}5.2.2用do…while语句实现循环例5.3由子午线长度求底点纬度Bf程序分析:1.利用迭代解法时,首先设迭代初值为:2.然后进入循环迭代,按照如下步骤操作:(1)(2)(3)(4)由得到的B再计算3.重复迭代直至为止。例5.3由子午线长度求底点纬度Bf例5.3由子午线长度求底点纬度Bf#include#include#defineP206264.8097655947voidmain()

6、{longdoublea,b,x;longdoublee,m0,m2,m4,m6,m8;longdoublea0,a2,a4,a6,a8;longdoubleB,FB,Bn1,Bn;intn=0;printf(“请输入长半轴a,短半轴b和点的x坐标:”);scanf(“%lf,%lf,%lf”,&a,&b,&x);e=(sqrt(a*a-b*b))/a;/*求椭圆的第一偏心率*/m0=a*(1-e*e);m2=3.0/2.0*e*e*m0;m4=5.0/4.0*e*e*m2;m6=7.0/6.0*e*e*m4;m8=9.0/8.0*e*e*m6;a0

7、=m0+m2/2.0+3.0/8.0*m4+5.0/16.0*m6+35.0/128.0*m8;a2=m2/2.0+m4/2.0+15.0/32.0*m6+7.0/16.0*m8;a4=m4/8.0+3.0/16.0*m6+7.0/32.0*m8;a6=m6/32.0+m8/16.0;a8=m8/128.0;B=x/a0;/*初始化B,利用x坐标与a0相除*/FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.0*sin(6*B)-a8/8.0*sin(8*B);do/*利用迭代直至Bn1-Bn<ε,即求出Bf*/{Bn=

8、B;B=(x+FB)/a0;FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.

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

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

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