第四讲 分支选择结构程序设计ppt课件_第1页
第四讲 分支选择结构程序设计ppt课件_第2页
第四讲 分支选择结构程序设计ppt课件_第3页
第四讲 分支选择结构程序设计ppt课件_第4页
第四讲 分支选择结构程序设计ppt课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/11/19,1,复习,关系运算符 if 语句 分支结构程序设计思想,2020/11/19,2,逻辑判断,关系运算符和关系表达式 大于 = 大于等于 = 小于等于 = 等于 != 不等于,2020/11/19,3,关系判断,#include main( ) int b,c;/ 整型变量 b=3;c=2;/ 对变量赋值 printf(“3 2 是 %dn”,(bc); / 输出逻辑值 printf(“3=2 是 %dn”,(b=c); printf(“3=2 是 %dn”,(b=c); printf(“3 2 是 %dn”,(bc); printf(“3!=2 是 %dn”,(b!=c)

2、; ,2020/11/19,4,if (表达式) 语句; 其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。如: if (c min) min = c ;,单分支选择结构的一种常用形式,2020/11/19,5,格式:if (条件) 语句; else 语句 2;,双分支选择结构的一种最常用形式,工作过程图 :,条件,2020/11/19,6,本节内容,逻辑运算符 if 语句应用举例 switch 语句及应用,2020/11/19,7,鸡兔同笼 已知鸡和兔的总数为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目,若无解,则输出No answer!,逻辑运算符,2020/1

3、1/19,8,#include main() int chick , rabbit , n , m ; scanf(“%d%d”,if ( m%2=1 | a0 | b0 ) printf(“No answer!n”); else printf(“chicks:%d;rabbits:%dn”,chick, rabbit); ,必须保证chick和rabbit 都是非负整数!,2020/11/19,9,分析: 1、先根据输入的三边长,判断能否构成三角形,若能,则转步骤 2;若不能,则转步骤3; 2、使用海伦公式求三角形面积 3、输出提示:该三角形不存在。,输入三角形的三边长,求三角形面积。,20

4、20/11/19,10,#include #include main( ) float a, b, c, s, area; scanf (“%f%f%f”, ,if ( (a+bc) ,2020/11/19,11,逻辑运算符与表达式,关系表达式只能描述单一条件,例如“x=0”。 如果需要描述“x=0”、同时“x10”,就要借助于逻辑表达式了。,2020/11/19,12,1、逻辑运算符极其优先次序 语言中提供了三种逻辑运算符: area = sqrt (s*(s-a)*(s-b)*(s-c); ,if的嵌套,【例4-1】写一程序,从键盘上输入某年份year(4位十进制数),判断其是否闰年。闰年

5、的条件是:年份能被4整除、但不能被100整除;或者能被400整除。,分析: 1、从键盘输入任意一年份,类型为十进制整数 2、判断是否是闰年 3、给出结论:“是”或“否”,继续对第2步进行任务细化 2.1、判断该年份数字能否被4整除,并且不能被100整除若能,则是闰年,程序结束,否则进入2.2 2.2、判断该年份数字能否被400整除,若能,是闰年,程序结束,否则不是闰年,程序结束。,程序优化,首先将是否闰年的标志leap预置为0(非闰年),这样仅当year为闰年时将leap置为1即可。 这种处理两种状态值的方法,对优化算法和提高程序可读性非常有效。 利用逻辑运算能描述复杂条件的特点,使用逻辑运算

6、降低if语句的复杂性,使程序更简洁 if (year%4=0 case 常量表达式2: 语句2; case 常量表达式n: 语句n; default : 语句n+1; ,例4.2,main( ) int a; printf(input integer number: ); scanf(%d, ,swich语句的语义是: 计算switch后的括号内的表达式的值;逐个与case后的常量表达式值相比较, 当表达式的值与某个case后的常量表达式的值相等时,即执行其后的语句,然后不再进行与case后常量表达式的比较,继续执行后面所有case 常量表达式:后的语句。 若表达式的值与所有case后的常量表

7、达式均不相同时,则执行default后的语句。,main( ) int a; printf(input integer number: ); scanf(%d, ,例4.3 从键盘上输入一个百分制成绩score,按下列原则输出其等级: score90,等级为A; 80score90,等级为B; 70score80,等级为C; 60score70,等级为D; score60,等级为E。,main( ) int score, grade; printf(“Input a score(0100): ”); scanf(“%d”, ,例4-4 已知某公司员工的保底薪水为500,某月所接工程的利润pro

8、fit(整数)与利润提成的关系如下(计量单位:元): profit 1000没有提成; 1000 profit 2000提成10%; 2000 profit 5000提成15%; 5000 profit 10000提成20%; 10000 profit提成25%。,为使用switch语句,必须将利润profit与提成的关系,转换成某些整数与提成的关系。 分析本题可知, 提成的变化点都是1000的整数倍(1000、2000、5000、100000),如果将利润profit整除1000,则当: profit1000 对应0、1 1000profit2000对应1、2 2000profit5000对

9、应2、3、4、5 5000profit10000对应5、6、7、8、9、10 10000profit对应10、11、12、,为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可: profit1000对应0 1000profit2000对应1 2000profit5000对应2、3、4 5000profit10000对应5、6、7、8、9 10000profit对应10、11、12、,main() long profit; int grade; float commission ,salary=500; printf(Input profi

10、t: ); scanf(%ld, ,2020/11/19,32,三整数排序 输入3个整数,从小到大排序后输出。 样例 : 输入 20 7 33 输出 7 20 33,if语句应用实例,2020/11/19,33,三整数排序,分析 a, b, c 三个数共有6种由大到小排序可能 我们用6条if 语句实现排序如何?,2020/11/19,34,三整数排序,if(ab,存在问题吗?,2020/11/19,35,三整数排序,if(a=b,存在问题吗?,2020/11/19,36,三整数排序,if(a=b,2020/11/19,37,三整数排序,if(ab) t=a;a=b;b=t; if(ac) t=

11、a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%d , %d , %dn,a,b,c);,复合 语句,2020/11/19,38,三整数排序,min=a; if(bmax) max=b; if(cmax) max=c; mid=a+b+c-min-max; printf(%d , %d , %dn,min,mid,max);,很有用的技巧哦: 求最大值或最小值,在使用if语句中应注意的问题: 在各种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它任意合法表达式,如赋值表达式等,甚至也可以是一个变量。例如: if

12、 (a = 5) 语句; if (b) 语句; 在C中,将非零数认定为“真”,零认定为“假”。,在if语句中,if后的表达式必须用括号括起来,在语句之后必须加分号。 在if语句的各种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用 括起来组成一个复合语句;但要注意的是在之后不能再加分号。 例如:if (ab) a+; b+; else a=0; b=10; ,下次上机题目,编程,在输入某人的身高(厘米)和体重(公斤)后,按下面方法确定此人的体重是否标准、过胖或过瘦: 1、标准体重=(身高-110)公斤 2、过胖:超过标准体重5公斤 3、过瘦:低于标

13、准体重5公斤,下次上机题目,某邮局对邮寄包裹有如下规定:若包裹的重量超过30千克,不予邮寄;对可邮寄的包裹每件收取手续费0.5元,再加上根据下表按重量weight(单位:千克)计算的邮资,请编程计算任意包裹的邮寄资费。 weight=1 5.00元 1weight=5 超过1千克的部分每500克2元 5weight=30 超过1千克的部分每500克1元,2020/11/19,43,上机练习,1、已知三边长,求三角形面积? 2、身高预测 据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。 设faHeight为其父身高,moHeight为其母身高,身高预测公式为: 男性成人时身高 = (faHeight + moHeight) * 0.54(cm) 女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm) 此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。 实验内容及提示:编程从键盘

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论