C语言程序设计C语言程序设计PPT (4).pdf
《C语言程序设计C语言程序设计PPT (4).pdf》由会员分享,可在线阅读,更多相关《C语言程序设计C语言程序设计PPT (4).pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4 4选 择 结 构 程 序 设 计第第章章选择结构和条件判断条件BAC语言有两种选择语句if语句,用来实现两个分支的选择结构switch语句,用来实现多分支的选择结构if语句例题【例4.1】在例3.5的基础上对程序进行改进。题目要求解得ax2+bx+c=0方程的根。由键盘输入a,b,c。假设a,b,c的值任意,并不保证b2-4ac0。需要在程序中进行判别,如果b2-4ac0,就计算并输出方程的两个实根,如果b2-4ac0,就输出“此方程无实根”的信息。#include#include/程序中要调用求平方根函数sqrtint main()double a,b,c,disc,x1,x2,p,q;
2、/disc是判别式sqrt(b*b-4ac)scanf(%lf%lf%lf,&a,&b,&c);/输入双精度浮点型变量的值要用格式声明%lf disc=b*b-4*a*c;if(disc0)/若b*b-4ac0printf(This equation hasnt real rootsn);/输出“此方程无实根”else/b*b-4ac0p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;/求出方程的两个根printf(real roots:nx1=%7.2fnx2=%7.2fn,x1,x2);/输出方程的两个根return 0;结束输出x1,x2YN
3、计算disc=b2-4ac计算x1,x2输入a,b,cdisc0输出“此方程无根”用if语句实现选择结构【例4.2】输入两个实数,按由小到大的顺序输出这两个数。#include int main()float a,b,t;scanf(%f,%f,&a,&b);if(ab)/将a和b的值互换t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return 0;解题思路:只要做一次比较,然后进行一次交换即可。用if语句实现条件判断。两个变量值的互换因此,为了实现互换,必须借助于第三个变量a=b;/把变量b的值赋给变量a,a的值等于b的值b=a;/再把变量a的值赋给变量b,变量
4、b值没有改变用if语句实现选择结构【例4.3】输入3个数a,b,c,要求按由小到大的顺序输出。#include int main()float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if(ab)t=a;/借助变量t,实现变量a和变量b互换值a=b;b=t;/互换后,a小于或等于b if(ac)t=a;/借助变量t,实现变量a和变量c互换值a=c;c=t;/互换后,a小于或等于c if(bc)t=b;/借助变量t,实现变量b和变量c互换值b=c;c=t;/互换后,b小于或等于c printf(%5.2f,%5.2f,%5.2fn,a,b,c);/顺序输出a,b,c的值
5、return 0;在经过第1次互换值后,ab,经过第2次互换值后ac,这样a已是三者中最小的(或最小者之一),但是b和c谁大还未解决,还需要进行比较和互换。经过第3次互换值后,abc。S1:if ab,将a和b对换(交换后,a是a、b中的小者)S2:if ac,将a和c对换(交换后,a是a、c中的小者,因此a是三者中最小者)S3:if bc,将b和c对换(交换后,b是b、c中的小者,也是三者中次小者)S4:顺序输出a,b,c算法算法步骤步骤if语句的一般形式if(表达式)语句1 else 语句2“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式方括号内的部分(即else子句)为可选的,既
6、可以有,也可以没有语句1和语句2可以是一个简单的语句,也可以是一个复合语句,还可以是另一个if语句if(表达式)语句1形式1没有else子句部分if(表达式)语句1else语句2形式2有else子句部分if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3else if(表达式m)语句melse语句m+1形式3在else部分又嵌套了多层的if语句关系运算符和关系表达式在C语言中,比较符(或称比较运算符)称为关系运算符。所谓“关系运算”就是“比较运算”,将两个数值进行比较,判断其比较的结果是否符合给定的条件。关系运算符及其优先次序(小于)关系运算符1(大于)3=(
7、大于等于)4=(等于)5!=(不等于)6前种关系运算符的优先级别相同,后2种也相同。前种高于后种。关系运算符的优先级低于算术运算符。关系运算符的优先级高于赋值运算符。算术运算符赋值运算符高优先级低ca+b 等效于c(a+b)(关系运算符的优先级低于算术运算符)ab=c等效于(ab)=c(大于运算符的优先级高于相等运算符=)a=bc等效于a=(bc)(小于运算符c等效于a=(bc)(关系运算符的优先级高于赋值运算符)关系表达式用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。关系表达式的值是一个逻辑值,即“真”或“假”。在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”。若
8、a=3,b=2,c=1,则:d=ab,由于ab为真,因此关系表达式ab的值为1,所以赋值后d的值为1。f=abc,则f的值为0。因为“”运算符是自左至右的结合方向,先执行“ab”得值为1,再执行关系运算“1c”,得值0,赋给f,所以f的值为0逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或其他逻辑量连接起来的式子就是逻辑表达式。逻辑运算符及其优先次序运算符含义举例说明!逻辑非(NOT)!a如果a为假,则!a为真;如果a为真,则!a为假&逻辑与(AND)a&b 如果a和b都为真,则结果为真,否则为假|逻辑或(OR)a|b如果a和b有一个以上为真,则结果为真,二者都为假时,结果为假ab!a!ba&
9、b a|b真(非0)真(非0)假(0)假(0)真(1)真(1)真(非0)假(0)假(0)真(1)假(0)真(1)假(0)真(非0)真(1)假(0)假(0)真(1)假(0)假(0)真(1)真(1)假(0)假(0)“&”和“”是双目运算符,要求有两个运算对象(操作数);“!”是单目运算符,只要有一个运算对象优先次序:!(非)(与)(或),即“!”为三者中最高的;逻辑运算符中的“”和“”低于关系运算符,“!”高于算术运算符逻辑运算结果不是0就是1,不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象可以是0(“假”)或任何非0的数值(按“真”对待)a&b&c。只有a为真(非0)时,才需要判别
10、b的值。只有当a和b都为真时才需要判别c的值。a b c。只要a为真(非0),就不必判断b和c。只有a为假,才判别b。a和b都为假才判别c。逻辑表达式在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。abc0(假)非0(真)0(假)非0(真)0(假)非0(真)1(真)0(假)abc非0(真)0(假)非0(真)0(假)非0(真)0(假)0(假)1(真)既然关系表达式和逻辑表达式的值是0和1,而且在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。那么就可以理解为什么在if语句中表达式可以是任何数值表达式。if(x!
11、=0)语句1/括号内的表达式是关系表达式,如果x不等于0,执行语句1if(x0&y0)语句2/表达式是逻辑表达式,如果x和y都大于0,执行语句2if(x)语句3/表达式是变量,如果x不等于0,则条件判断结果为真,执行语句3if(1)语句4/表达式是非0整数,条件判断结果为真,执行语句4if(0)语句5/表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句if(x+3.5)语句6/表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6判别用year表示的某一年是否闰年,可以用一个逻辑表达式来表示。闰年的条件是符合下面二者之一:能被整除,但不能被100整除,如2008
12、。能被400整除,如2000。小例子(year%4=0&year%100!=0)year%400=0 条件运算符和条件表达式表达式1?表达式2:表达式3条件运算符由两个符号(?和:)组成,必须一起使用。要求有3个操作对象,称为三目(元)运算符,它是语言中唯一的一个三目运算符。条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式,此时表达式的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式,表达式的值就是整个条件表达式的值。if(ab)max=a;else max=b;max=(ab)?a:b;表达式1条件表达式取表达式2的值条件表达式取表达式3的值真(非0)假(0
13、)ab?(max=a):(max=b);/表达式2和表达式3是赋值表达式或条件运算符和条件表达式【例4.4】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include int main()char ch;scanf(%c,&ch);ch=(ch=A&ch=A&ch=Z)?(ch+32):ch”的作用是:如果字符变量ch的值为大写字母,则条件表达式的值为(ch+32),即相应的小写字母,32是小写字母和大写字母ASCII的差值。如果ch的值不是大写字母,则条件表达式的值为ch,即不进行转换。选择结构的嵌套if()if()语句1els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计C语言程序设计PPT 4 语言程序设计 PPT
限制150内