第4章 选择结构程序设计36267

上传人:飞*** 文档编号:5674337 上传时间:2017-08-07 格式:PPT 页数:97 大小:1.18MB
返回 下载 相关 举报
第4章 选择结构程序设计36267_第1页
第1页 / 共97页
第4章 选择结构程序设计36267_第2页
第2页 / 共97页
第4章 选择结构程序设计36267_第3页
第3页 / 共97页
第4章 选择结构程序设计36267_第4页
第4页 / 共97页
第4章 选择结构程序设计36267_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《第4章 选择结构程序设计36267》由会员分享,可在线阅读,更多相关《第4章 选择结构程序设计36267(97页珍藏版)》请在金锄头文库上搜索。

1、第4章 选择结构程序设计,4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8选择结构程序综合举例,4.1 选择结构和条件判断,在现实生活中,需要进行判断和选择的情况是很多的如果你在家,我去拜访你如果考试不及格,要补考如果遇到红灯,要停车等待周末我们去郊游70岁以上的老年人,入公园免票,4.1 选择结构和条件判断,在现实生活中,需要进行判断和选择的情况是很多的处理这些问题,关键在于进行条件判断由于程序处理问题的需要,在大多数程序中都

2、会包含选择结构,需要在进行下一个操作之前先进行条件判断,4.1 选择结构和条件判断,C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构,4.1 选择结构和条件判断,例4.1 在例3.5的基础上对程序进行改进。题目要求是求 方程的根。 由键盘输入a,b,c。假设a,b,c的值任意,并不保证 。需要在程序中进行判别,如果 ,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息。,解题思路:,输入a,b,c,计算disc,disc0,计算x1,x2,输出无实根,输出x1,x2,真,假,#include #include int main (

3、 ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c;,计算b2-4ac,disc的值变为-15,if (disc0) printf(“has not real rootsn”); else p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2); return 0;,-150为真,#include #include int main ( ) double a

4、,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c;,计算b2-4ac,disc的值变为8,if (disc0) printf(“has not real rootsn”); else p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2); return 0;,80为假,p的值变为-1,q的值变为0.71,x1的值变为-0.29,x2的值变为-1.71,if (disc0) p

5、rintf(“has not real rootsn”); else p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2); return 0;,选择结构,用if- else语句实现的,if (disc0) printf(“has not real rootsn”); else p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:nx1=%7.2fn x2=%7

6、.2fn”,x1,x2); return 0;,复合语句,4.2 用if语句实现选择结构,4.2.1 用if语句处理选择结构举例4.2.2 if语句的一般形式,4.2.1 用if语句处理选择结构举例,例4.2 输入两个实数,按代数值由小到大的顺序输出这两个数。,解题思路:只需要做一次比较,然后进行一次交换即可用if语句实现条件判断关键是怎样实现两个变量值的互换,A,B,互换前,A,B,互换后,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,#inc

7、lude int main() float a,b,t; scanf(%f,%f,&a,&b); if(ab) t=a; a=b; b=t; printf(%5.2f,%5.2fn,a,b); return 0;,将a和b的值互换,如果ab,#include int main() float a,b,t; scanf(%f,%f,&a,&b); if(ab) t=a; a=b; b=t; printf(%5.2f,%5.2fn,a,b); return 0;,选择结构,用if语句实现的,例4.3 输入3个数a,b,c,要求按由小到大的顺序输出。,解题思路:可以先用伪代码写出算法:if ab,a

8、和b对换 (a是a、b中的小者)if ac,a和c对换 (a是三者中最小者)if bc,b和c对换 (b是三者中次小者)顺序输出a,b,c,#include int main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); return 0;,如果 ab,将a和b对换,a是a、b中的小者,#include int main() float a,b,c,t; s

9、canf(%f,%f,%f,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); return 0;,如果 ac,将a和c对换,a是三者中的小者,#include int main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(%5.2f,%5.

10、2f,%5.2fn,a,b,c); return 0;,如果 bc,将b和c对换,b是三者中的次小者,4.2.2 if语句的一般形式,if (表达式) 语句1 else 语句2 ,关系表达式逻辑表达式数值表达式,方括号内的部分为可选的,4.2.2 if语句的一般形式,if (表达式) 语句1 else 语句2 ,最常用的3种if语句形式:1. if (表达式) 语句1 (没有else子句)2. if (表达式) 语句1 else 语句2 (有else子句)3. if(表达式) 语句 else if(表达式) 语句 else if(表达式) 语句 else if(表达式) 语句 else 语句m

11、+1 (在else部分又嵌套了多层的if语句),if(number 500) cost = 0.15;else if (number 300) cost = 0.10;else if (number 100) cost = 0.075;else if (number 50) cost = 0.05;else cost=0;,if (number 500) cost = 0.15;else if (number 300) cost = 0.10; else if (number 100) cost = 0.075; else if (number 50) cost = 0.05; else cost = 0;,等价于,分号不能丢,说明:(1)整个if语句可写在多行上,也可写在一行上 但都是一个整体,属于同一个语句(2)“语句1”“语句m”是if中的内嵌语句 内嵌语句也可以是一个if语句;(3)“语句1”“语句m”可以是简单的语句,也可以是复合语句,4.3关系运算符和关系表达式,4.3.1关系运算符及其优先次序4.3.2 关系表达式,4.3.1关系运算符及其优先次序,关系运算符:用来对两个数值进行比较的比较运算符语言提供种关系运算符: (小于) = (小于或等于) (大于) = (大于或等于) = (等于) != (不等于),

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

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号