c语言程序设计 第4章_分支结构.ppt

上传人:s****8 文档编号:67248736 上传时间:2022-12-24 格式:PPT 页数:36 大小:1.42MB
返回 下载 相关 举报
c语言程序设计 第4章_分支结构.ppt_第1页
第1页 / 共36页
c语言程序设计 第4章_分支结构.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《c语言程序设计 第4章_分支结构.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计 第4章_分支结构.ppt(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言程序设计教程语言程序设计教程(第(第2版)版)第第4 4章章 分支结构分支结构 第4章 分支结构本章主要内容本章主要内容1.if语句的基本结构2.ifelse语句基本结构3.if语句的嵌套结构4.switch语句的基本结构5.程序案例分析第4章 分支结构顺序结构:程序按照语句的先后顺序进行数据处理。分支结构:程序要对问题进行判断,根据判断的结果,选择不同的处理方式,进行不同的操作。C语言用于实现分支的结构:if结构switch结构4.1.1 if语句语句if语句结构是一种常用的分支结构,是最简单的一种单分支结构,该结构构成一个二叉结构。if语句的一般形式为。if()语法功能:先判断的值,

2、若该值为“真”,则:执行;否则:什么也不执行。注意:1.:一般为条件表达式或逻辑表达式。2.if语句中的一般情况下都是以复合语句的形式出现,即用一对花括号将语句括起来。如果语句只有一条,则可以不需要花括号3.if结构的流程图:4.1 if结构4.1 if结构例例1 1:从键盘任意输入两个实数a和b,要求a的值总是小于或等于b的值,然后输出这两个数a和b的值。分析:分析:根据题意,要求ab。方案:方案:先输入一个较小的数,赋给变量a,再输入一个较大的数,赋给变量b。问题:问题:输入的限制对用户不合理。如果先输入的值较大,后输入的值较小,则结果为ab。方案修正:方案修正:不论输入的大小顺序怎样,总

3、是会有ab的结果。4.1 if结构算法的流程图如图所示:其中虚线框为if结构。程序的难点:交换a,b的值。程序见:example4_1.c例例2 2:从键盘输入一个整数,求该数的绝对值。阅读例4-2的问题和程序。4.1 if结构4.1.2 if_else语句语句if_else语句的一般形式为:if()else 式中,一般为条件表达式或逻辑表达式。语法功能:先判断的值,若其值为“真”,则执行,否则执行。注意:结构中的、与的规定同if结构。if_else结构的流程图如图所示。4.1 if结构例例3 3:设计一个猜数游戏,由计算机产生一个随机数magic,从键盘输入一个数guess,若输入的数gue

4、ss的大小等于随机数magic,则输出“Gratulation!YouAreright.”。否则,输出“Sorry!YouAreWrong.”。分析:分析:计算机产生的随机数有两种:伪随机数。真随机数。伪随机数:实际上是一组预先排好的一个数列,可通过函数rand()获取;真随机数:通过一个随机种子对伪随机数进行重新排列而得,该随机种子可以是任何数。如果取时间作为随机种子,则所得的随机数即为真随机数,真随机数可通过函数srand(unsignedseed)获取。为简单起见,本题由计算机产生的数就用随机函数rand()直接取伪随机数。4.1 if结构算法流程图如图所示:虚线框代表if_else结构

5、。程序:example4_3.c思考:怎样获取计算机的真随机数?修改程序example4_3.c:example4_3a.c4.1 if结构4.1.3 if语句的嵌套语句的嵌套在if或else的分支下又可以包含另一个if语句或if_else语句。嵌套的形式有两种:规则嵌套和任意嵌套。1规则嵌套规则嵌套规则嵌套的形式为:if()elseif()elseif()elseif()else 4.1 if结构规则嵌套的流程图如图所示:4.1 if结构例例4 4:从键盘输入+、*、/中的任一个,输出对应的英文单词:plus、minus、mutiply、divide,若输入的不是这4个字符中的任一个,则输出

6、“Sorryyouarewrong”。算法的流程图如图所示:程序 程序:example4_4.c4.1 if结构1.在if_else嵌套的结构中,else总是与离它最近的上一个if配对。2.程序的书写可按缩进对齐方式,增加程序代码的美观和程序的可读性。3.if_else结构的嵌套层次不提倡太多,否则会影响程序的执行效率,并且容易出现判断上的漏洞,导致程序出现不正确的结果。4.良好的程序书写风格有助于对程序的理解,请注意程序的书写风格,养成良好的编程习惯。注意注意4.1 if结构2任意嵌套任意嵌套任意嵌套是在if_else结构中的任一执行框中插入if结构或if_else结构。例例5 5:编写程序

7、,通过输入x的值,计算阶跃函数y的值。4.1 if结构算法的流程图如图所示:两个虚线框均为if_else结构。程序:程序:examle4_5.cexamle4_5.c请思考规则嵌套的算法,并写出程序上机验证。4.1 if结构 对多重if_else结构,最容易出现问题的是if与else配对错误。阅读程序:example4_6.c、example4_7.c 思考if与else的配对关系。注意注意4.2 switch结构if语句适合两种分支情况进行选择。如果多种分支的情况,可采用嵌套的if语句结构。存在的问题:当嵌套的分支较多时,程序的效率和可读性降低。解决方案:用switch结构处理多路分支的情形

8、。4.2 switch结构4.2.1 switch语句语句switch语句的一般形式为:switch()case:语句序列1;case:语句序列2;case:语句序列n;default:语句序列(n+1);4.2 switch结构注意:(1)的值必须是整型、字符型或者枚举类型;(2)语句序列i允许有多条语句,不需要将语句序列用一对花括号括起;(3)可以为任何表达式。(4)switch语句的语法规则是:先计算的值;再依次判断与哪一个的值相等;若的值等于的值,则:从语句序列i开始执行语句,直到语句序列(n+1)为止;若的值不等于任何一个的值,则:执行default后面的语句序列(n+1)。4.2

9、switch结构switch语句一般形式的流程图如图所示:4.2 switch结构例例6 6:某班级准备周末举行一个班级活动,但活动内容要根据表中所示的天气情况来决定:天 气活 动 内 容晴 天登 山有风无雨郊 游下 雪堆 雪 人下 雨不举行班级活动其他天气参观博物馆分析:分析:分别用整数1、2、3、4代表晴天、有风无雨、下雪和下雨这4种天气情况。通过输入天气情况weather的值,来确定活动场所。4.2 switch结构算法流程图如图所示:程序:example4_8.c结论:结论:程序不完全正确;不能正确表达每一种情况。存在的问题:存在的问题:程序不能正确分支;解决方案:解决方案:使用分支语

10、句break。4.2 switch结构4.2.2 break语句在语句在switch语句中的作用语句中的作用break语句起中断和跳出的作用。可以用在switch分支语句和循环语句中。使用方法:在switch语句中,在需要独立执行的后面加上一条分支语句:break;switch条件分支互相独立的语句形式为:4.2 switch结构switch()case:;break;case:;break;case:break;case:;break;default:;4.2 switch结构switch条件分支互相独立语句的流程图:思考:思考:该结构的语法规则。4.2 switch结构例例7 7:修改上面

11、程序的算法,使其能满足实际的需要。分析:分析:参照图4-13所示的流程图,在每个分支的语句序列后面加上break语句即可。程序:example4_9.c深化性练习:画出该算法的流程图。4.2 switch结构switch结构的灵活应用:可根据实际应用的需要,将两种不同形式的switch结构组合起来。例例8:从键盘输入一个字符,判断其是否为a(可代表abort)或r(可代表retry)或f(可代表fail),并输出相应信息(输入时不区分大小写)。分析:分析:问题的关键是对输入的字母a、r和f,不论它们是大写还是小写,所对应的操作都是一样的。利用switch结构的特点,设计出该问题的算法流程图如图

12、所示。4.2 switch结构根据流程图不难写出其程序:example4_10.c4.3 程 序 范 例例例9 9:求解一元二次方程ax2+bx+c=0的根(a0),a、b、c均为实数,其值由键盘输入。分析:分析:一元二次方程的一般解为:其中a的值不能等于0,否则方程无解。方程的求解需要考虑以下3种情况:b24ac0,方程有两个不等的实根:4.3 程 序 范 例 b24ac=0 方程有两个相等的实根:b24ac0 方程有两个共轭复根:算法流程图如图所示:程序:example4_114.3 程 序 范 例程序是怎样实现三个判别条件的?还可以设计怎样的算法?求出一元二次方程的根。思考思考4.3 程

13、 序 范 例例例1010:运输费用的计算问题。货物的运输费用与距离和重量有关,距离S越远,每公里的运费越低。总运输费用Exp的计算公式为:Exp=P*W*S*(1d),式中P为每公里每吨货物的基本运费、W为货物重量(t)、S为运输距离(km)、d为折扣,折扣率d与距离有关,具体标准如下:0S250没有折扣(d=0)250S500折扣2%(d=2%)500S1000折扣5%(d=5%)1000S2000折扣8%(d=8%)2000S3000折扣10%(d=10%)3000S折扣15%(d=15%)4.3 程 序 范 例分析:分析:根据折扣率与距离的关系,折扣率发生变化时,距离为250km的倍数。

14、从03000km,将距离S按250km的倍数分段,一共可分为13段,每一段都对应着一个固定的折扣率,如表所示:S/2500123456789101112d(%)025810154.3 程 序 范 例算法流程图如图所示:程序:example4_12.c思考:程序中语句default:d=100;起什么作用?怎样防止由于输入数据错误而发发生的错误?是否还有其他算法?阅读并分析【例4-13】4.4 本 章 小 结(1)程序分支结构的几种形式:if语句、if_else语句、if嵌套语句和switch语句等。(2)分支语句的共同特点:先进行条件判断,再决定下一步做什么。(3)if的合理嵌套可以实现多分支

15、选择,需注意else与if的配对。(4)过多的if_else嵌套会降低程序的效率和可读性。(5)switch是一种多分支选择语句,可读性比if语句要强。(6)要注意在switch语句中正确地使用break语句,使程序能正常地从switch分支中跳出,避免发生逻辑错误。(7)建议在switch语句中,都要设置default标号,避免出现逻辑错误。(8)不提倡在if语句中内嵌一个switch结构语句,反之亦然。本章练习一、填空题 【题4.1】【题4.13】中的奇数题号。二、单选题 【题4.14】【题4.27】中的奇数题号。三、编程题 【题4.30】【题4.32】【题4.34】【题4.36】【题4.37】

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com