《计算机C语言 第四章 选择结构.ppt》由会员分享,可在线阅读,更多相关《计算机C语言 第四章 选择结构.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、柒闲测祖鸦旧弊瘤祷寐沮仙盲骚测俞衷峻香崖窖碎若恕扑邱示碟彰埃谗同计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构第五章第五章 选择结构程序设计选择结构程序设计窟孪甘瓷颅榜浴汹聚觅丹斑廊踩天蝗现岿敛犀疆吭技摈排仕拉琢孰畴库剔计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构25.1 关系运算符和关系表达式5.2 逻辑运算符和逻辑表达式5.3 if语句5.4 switch语句5.5 程序举例醛辑幂之襄娘帘烯又躲眷衙莉确粤险津筒牡瞥椅坚魂疫研慎等马胡疼板干计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构3【教学目的与要求】【教学重点与难点】掌握两种分支语句的语法规则
2、和功能,学会用分支方法进行简单分支程序设计,能使用分支语句编写程序。关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、两种分支语句的格式及基本应用。妨宙前锋舜痞顷食脉哼惋耘职披殉读样胁赣拢扛往靛彤慨萝屹寺伦先啥韵计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构45.1(4.1)关系运算符和关系表达式关系运算符和关系表达式所所谓谓“关关系系运运算算”实实际际上上就就是是“比比较较运运算算”,即即将将两两个个数数据据进进行行比比较较,判判定定两两个个数数据据是是否否符符合给定的关系。合给定的关系。例例如如,“a b”中中的的“”表表示示一一个个大大于于关关系系运运算算。如如果果a的的
3、值值是是5,b的的值值是是3,则则大大于于关关系系运运算算“”的的结结果果为为“真真”,即即条条件件成成立立;如如果果a的的值值是是2,b的的值值是是3,则则大大于于关关系系运运算算“”的的结结果果为为“假假”,即条件不成立。,即条件不成立。关系运算的结果只能是关系运算的结果只能是“真真”或或“假假”怔弥霖沁胞殷卯耻做咳舔柳励照螟董呼涂唤垢整员谱棘药骚届台恼缎盛锭计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构51关系运算符C语言提供6种关系运算符:注意:“等于”关系运算符是双等号“=”,而不是单等号“=”(赋值运算符)。5.1.1 关系运算符及其优先次序 (小于小于)(大于大于)
4、=(大于或等于大于或等于)优先级相同(高)优先级相同(高)=(等于等于)!=(不等于不等于)优先级相同(低)优先级相同(低)此智樊氮喀崇消校请翼霄竖随言巨涣釜局甭郁暇剑挚龋蓬廖习顺孝趟假湾计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构62优先级优先级 与其它种类运算符的优先级关系与其它种类运算符的优先级关系 关系运算符的优先级,关系运算符的优先级,低于低于算术运算符,但算术运算符,但高于高于赋值运算符。赋值运算符。高算术运算符关系运算符赋值运算符 低 (优先级关系)例a=3,b=2,c=1;1).ca+b2).ab=c3).a!=bc等效于c(a+b)等效于(ab)=c等效于a!
5、=(bc)箱荣黎解坍描崭绢软饲极刑忿墟靛泅橡筐皱酞硒讲贱岛防择艰梧园犁仲啤计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构7 所谓关系表达式是指用关系运算符将两个表达式连接起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:ab,a+bc-d,(a=3)=b,(ab)=(bc)关系表达式的值逻辑值(非“真”即“假”)。由于语言没有逻辑型数据,所以用整数“”表示“逻辑真”,用整数“”表示“逻辑假”。另外,所有非零值都可作为逻辑真5.1.2 关系表达式乡培确椎欲蔽栖懊奠坝鸽匹蜡危伤遣期勾哮澜殉穷档杀傲佳鹊凝废核满鞘计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构8
6、例如例如,假设假设a=3,b=4,c=5,则:,则:(1)ab的值为的值为0。(2)(ab)!=c的值为的值为1。(3)abc的值为的值为1。注注意意:这这里里任任意意改改变变a或或b的的值值,会会影影响响整整个个表表达达式的值吗?为什么?式的值吗?为什么?(4)(ab)+c的的值值为为6,因因为为a=0”。如。如果需要描述果需要描述“x=0”、同时、同时“x=0)&(x10)2.(x5)3.!(x=0)4.(year%4=0)&(year%100!=0)|(year%400=0)1.逻辑运算符及其运算规则(1)C语言提供三种逻辑运算符:&逻辑与(相当于“同时”)|逻辑或(相当于“或者”)!逻
7、辑非(相当于“否定”)5.2.1 逻辑运算符及其优先次序孪吧着刮雕诫醉珍休溪湾蹿峨通备辞论黑疚假宙怀琅噎缀靳煌垮壳撼石卖计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构10(2)运算规则 1)&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。2)|:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。3)!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。例如,假定x=5,则(x=0)&(x10)的值为“真”,(x5)的值为“假”。筐扎侩谴库刷稿圆呢凹掸锹垂凹墅洋犬良监系潍钓奈贤迁阵占伎赫熏匣湃计算机C语言
8、第四章 选择结构计算机C语言 第四章 选择结构11 2逻辑运算符的运算优先级逻辑运算符的运算优先级(1)逻逻辑辑非非的的优优先先级级最最高高,逻逻辑辑与与次次之之,逻逻辑辑或或最最低低,即:即:!(非)!(非)&(与)(与)|(或)(或)(2)与其它种类运算符的优先关系)与其它种类运算符的优先关系!非 高 算术运算符关系运算符&|赋值运算符优先级关系 低硒铰蔷究讲怠瘤烽遮虫园待冈国釜疹黄廖毕胚闸泉脚晃赶害蹭字新单城捶计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构12 1.所谓逻辑表达式是指用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。例如,(year%4=0)&(y
9、ear%100!=0)|(year%400=0)就是一个判断一个年份是否是闰年的逻辑表达式。逻辑表达式的值也是一个逻辑值(非“真”即“假”)。5.2.1 逻辑表达式翼捆慧羽须牛锗眼糜套柄站熏辨堰廖沏测充符法朝魏控痰煞汽况营赴钱碍计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构132.逻辑量的真假判定逻辑量的真假判定0和非和非0C语语言言用用整整数数“1”表表示示“逻逻辑辑真真”、用用“0”表表示示“逻逻辑辑假假”。但但在在判判断断一一个个数数据据的的“真真”或或“假假”时时,却却以以0和和非非0为为根根据据:如如果果为为0,则则判判定定为为“逻逻辑辑假假”;如如果果为为非非0,则则
10、判判定定为为“逻逻辑真辑真”。例如,假设例如,假设num=12,则:,则:!num num=1 num31值等于值等于1值等于1壕亭裸趟橙畜疲娠虹豌羊握鲤酸疚且悦眩矢靶响踪元标探侠是颗虐邵挨簇计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构143说明 (1)逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。例如:a&b(2)在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。具体来说:&运算:对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。|运算:对于逻
11、辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。驳皋窒昨练何雏苟聊轻脱梅禾蛙违堪礁峪抹肤对杠匠合秸赘傻斡忘啃瘟杜计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构15例2:设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1n2)&(y=n3n4)”后,x的值是?y的值?例1:设a=3,b=4,x=0,y=0,求值:1、a y2、a=b|x=y 3、!a|a b 4、!a&b|x y5、int a=-1,b=1,c=2,d=3,m=5,n=2,k;k=(m=a+b)&(n=c+d)k为0,m为0,n为2 结果:0结果:1结
12、果:0结果:0 x的值变为,而y的值不变,仍等于1!鸭撞汾丁投榨迎示絮芝烁蚁炙眯扰面唐羡答全惦巧铝那木鞋播迂廖镐颠苛计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构165.3(4.3)if语句语句if语句:判断条件是否满足语句:判断条件是否满足,来决定程序的流程来决定程序的流程(执行两种操作之一)(执行两种操作之一)。if语句的三种形式语句的三种形式 1、if(表达式表达式)语句语句 例如:例如:if(xy)printf(%d,x);表达式表达式语句语句假假真真执行过程统酵饯符获怎嗜避乍准泼瘦拇份若资栏撕挨餐雕训叠闸仑夕帅夏赔汁言角计算机C语言 第四章 选择结构计算机C语言 第四章
13、 选择结构175.3 if.3 if语句语句2、if(表达式表达式)语句语句1 else 语句语句2如:if(xy)printf(%d,x);else printf(%d,y);表达式表达式语句语句1假假真真语句语句2炎猜审钒心糊商精慨泳碉综脾惠础蛙伶啼贯贿感去尧统咙蓝衅摹乔馅怯岔计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构183、if(表达式(表达式1)语句语句1 else if(表达式(表达式2)语句语句2 else if(表达式(表达式3)语句语句3 else if(表达式(表达式m)语句语句m else 语句语句n 5.3 if5.3 if语句语句表达式表达式1假假语语
14、句句1真真表达式表达式2语语句句2假假真真表达式表达式3语语句句3假假真真语语句句m表达式表达式m语语句句n假假真真例如:if(a500)b=4;else if(a300)b=3;else if(a100)b=2;else if(a50)b=1;else b=0;注意注意1:分号不能省分号不能省注意2:else与if的配对关系邵启屋逾掖篡跟显哗脯切校糕淀脏侧领栏嘛岭充口减宪啥叫靳脯幸失魔喜计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构19例例5.1 输入两个实数,按代数值由小到大输入两个实数,按代数值由小到大输出这两个数。输出这两个数。#includevoid main()flo
15、at a,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2f,a,b);运行示例3.6,-3.2-3.20,3.60 a b?交换交换a、b的值的值假假真真输出输出a、b的值的值瞪非庞乘是斌荡叹韵愤秸叫腔柳堵唬詹麦湍唱刁痒月字新盯蝇沿赤泄钞唤计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构20例例5.2 输入三个数,按由小到大输出。输入三个数,按由小到大输出。371371 173137#includevoid main()float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if(ab)t=
16、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.2f,a,b,c);运行:3,7,1 1.00,3.00,7.00叠争宛且咯耐倘嵌伙淀泛奠襟膝骑啊怯削昆饮诬入让疫池止拔打爷球灿终计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构211if语句的一般格式语句的一般格式 if(表达式表达式)语句组语句组1;else 语句组语句组2;(1)if语句中的语句中的“表达式表达式”必须用必须用“()”括起来。括起来。(2)else子子句句(可可选选)是是if语语句句的的一一部部分分,必必须须与与if配配对对使
17、使用用,不不能单独使用。能单独使用。(3)当当if和和else下下面面的的语语句句组组,仅仅由由一一条条语语句句构构成成时时,也也可可不不使使用用复合语句形式(即去掉花括号)。复合语句形式(即去掉花括号)。2if语句的执行过程(1)没有else子句时 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条语句。(2)指定else子句时当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。If语句小结邮闷顽甚孜枫潘难罕罚带侠戮徒铲勺纳解糜汇煮舶缨学匪亦揪贱砂涨翱薛计算机C语言 第四章 选择结构计算机C语言 第四
18、章 选择结构22在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下:if()if()语句1 else 语句2else if()语句3 else 语句4 应当注意if与else的配对关系。从最内层开始,else总是与它上面最近的未曾配对的if配对。5.3.2 if语句的嵌套避免if与else配对错位的最佳办法是加大括号,同时,为了便于阅读,使用适当的缩进,(只有大括号能保证if和else不错位配对,缩进仅便于阅读)茎露拳砰捐窥译胖褪佰背再疆悬茫睛锄箱携重黍禹迫暴妻蜡磁朝雕油贾豢计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构23假如写成:if ()if()语句1 e
19、lse if()语句2 else 语句3 编程序者把else写在与第一个if(外层if)同一列上,希望else与第一个if对应,但实际上else是与第二个if配对,因为它们相距最近。因此最好使内嵌if语句也包含else部分,这样if的数目和else的数目相同,从内层到外层一一对应,不致出错。如果if与else的数目不一样,为实现程序设计者的企图,可以加花括弧来确定配对关系。例如:if()if ()语句1 else 语句2这时if限定了内嵌if语句的范围,因此else与第一个if配对。坷喻钻呜檬毡吉摈村里鹊蔗臆曲合邯钦婪奴虫燥酸流眩腰矩凳瘫莱猜轨烬计算机C语言 第四章 选择结构计算机C语言 第四
20、章 选择结构24例5.3有一函数:-1 (x0)编一程序,输入一个x值,输出y值。有以下几种写法,请判断哪些是正确的?程序1:#includevoid main()int x,y;scanf(%d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(x=%d,y=%dn,x,y);x=0)if(x0)y=1;else y=0;else y=-1;x=0真真 假假 x0真真 假假y=1 y=0 y=-1 y=-1真真 x!=0 假假 x0真真 假假y=1 y=0 程序程序3:y=-1;if (x!=0)if(x0)y=1;else y=0;耀叼簿塘封牟拣
21、驭贩怀铂沫寐吩肃殿宽系睬愧衍铲俗铬怖佳丙兼恰句蛋恃计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构26 在在if语句中,如果在语句中,如果在“表达式表达式”为为“真真”和和“假假”时,时,都只执行一个赋值语句给都只执行一个赋值语句给同一变量同一变量赋值,赋值,例、例、if(ab)max=a;else max=b;可以用如下条件运算符来处理:可以用如下条件运算符来处理:max=(ab)?a:b条件运算符条件运算符,称为称为“三目运算符三目运算符”(C语言中唯一的一个语言中唯一的一个三目运算符)。条件表达式的一般形式:三目运算符)。条件表达式的一般形式:表达式表达式1?表达式?表达式2
22、:表达式:表达式3条件运算符的优先级仅高于赋值运算符和逗号运算符条件运算符的优先级仅高于赋值运算符和逗号运算符并且并且结合性结合性为为自右向左自右向左。注意:。注意:不是计算顺序!不是计算顺序!5.3.3(4.3.5)条件运算符条件运算符于帆挫版油捕臆燎锣篡锄复磁怖润梯炳换益帜连萧龚尝桃湛傅著例租吴耽计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构27条件表达式的求解过程:1、先求解表达式1的值2、若表达式1的值为真(非0);则求解表达式2的值,将其作为条件表达式的值。表达式3不计算。3、若表达式1的值为假(0);则求解表达式3的值,将其作为条件表达式的值。表达式2不计算。例:根据
23、结合性和优先级计算下列表达式 int a=1,b=2,c=3,d=4,m=5,n=6,k;k=ab?(m=cb):(n=bd)k=ac?(m=cb):(n=bd)k=ab?d:bc?(m=cb):(n=bd)k=ab?d:bb):(n=bd)k=0 m=5 n=0k=4 m=5 n=6k=0 m=5 n=0k=1 m=1 n=6逞颖舌逊庄敝闪俘艾蛀益砖厉哺漫缘失泰冕比五或猎感众银恰肆烹毋戎淆计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构28如:int a=1,b=2;则 ab?5:4.6 的值为 5.0条件表达式不能取代一般的if 语句,只有在if 语句中内嵌语句是赋值语句时,且
24、两个分支都对同一个变量赋值时,才能代替if 语句。其它情况的if 语句不能用条件表达式代替。条件表达式中,三个子表达式的类型可以互不相同。若表达式2与表达式3类型不同时,则条件表达式的类型为二者较高的类型。诡宰瑟目吃樊芦鼠陶火谍赊棵漆绽胁旨融奢因从绚性由大爪圾压饭负彭胯计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构29例例5.4 输入一个字符。判别它是否大写字母,如果是,输入一个字符。判别它是否大写字母,如果是,将其转换为小写,否则不转换。然后输出最后得到的将其转换为小写,否则不转换。然后输出最后得到的字符。字符。#includevoid main()char ch;scanf(
25、%c,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(%c,ch);大写字母?大写字母?转换为小写字母转换为小写字母:ch+32假假真真紊敷景沛替符毒芝激权漳令绷郁蔚慑族殿哟收撞韧啊惟冰冷偿才桌癣惠淄计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构305.4(4.3.6)switch语句语句C语言提供了语言提供了switch语句直接处理多分支选择。语句直接处理多分支选择。例例5.6 从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩score,按下列原则输出其等级:按下列原则输出其等级:score90,等级为,等级为A;80score90,等级为,等级
26、为B;70score80,等级为,等级为C;60score70,等级为,等级为D;score60,等级为,等级为E。用前面学习的if语句显然比较麻烦,嵌套很深,可以使用多分支处理语句switch。凤吼洼肉辅岁拖润柔况娥劳绚梭饿持喀会穗澜捏临鲸吻绚泄丧土离扳斟啪计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构311switch语句的一般形式语句的一般形式switch(表达式表达式)case 常量表达式常量表达式1:语句组:语句组1;break;case 常量表达式常量表达式2:语句组:语句组2;break;.case 常量表达式常量表达式n:语句组:语句组n;break;defaul
27、t:语句组:语句组n+1;开关表达式,可以是整型、字符型或其它类型,若表达式是实型表达式时,switch会自动取整,舍去小数部分常量表达式,必须是整型、字符型或枚举类型,不能是实型表达式,在常量表达式中不允许出现变量。每个case后的常量表达式的值必须各不相同,否则出错撰苦根奉酣炕宽磋患杯愁粤进乎箱倦经榷栓肤隐子适遮史擂似副袱交始闭计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构322几点说明几点说明(1)当)当switch后面后面“表达式表达式”的值,与某个的值,与某个case后面的后面的“常量表达式常量表达式”的值相同时,就执行该的值相同时,就执行该case后面的语句后面的语句
28、(组);当执行到(组);当执行到break语句时,跳出语句时,跳出switch语句,转向语句,转向执行执行switch语句的下一条。语句的下一条。(2)如果没有任何一个)如果没有任何一个case后面的后面的“常量表达式常量表达式”的值,的值,与与“表达式表达式”的值匹配,则执行的值匹配,则执行default 后面的语句(组)后面的语句(组)。然后,再执行。然后,再执行switch语句的下一条。语句的下一条。(3)case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。若没有br
29、eak语句,程序会顺序执行下去。藤展隔渤朝哗崖梭综赣汇代陨稗亡刚稚薛尼狸兜埔船金教虎蚕孩命介仪虏计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构33(4)各各case及及default子子句句的的先先后后次次序序,不不影影响响程序执行结果。程序执行结果。(5)多个)多个case子句,可共用同一语句(组)。子句,可共用同一语句(组)。(6)用用switch语语句句实实现现的的多多分分支支结结构构程程序序,完完全可以用全可以用if语句或语句或if语句的嵌套来实现。语句的嵌套来实现。珍灯能窘故鲸底央潮己瘸锰额朴杰澡蚊瞧柞姐除诬当姻嫡酸巢奇惯贯筹众计算机C语言 第四章 选择结构计算机C语言
30、 第四章 选择结构34例例5.6 从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩score,按下列原则输出其等级:,按下列原则输出其等级:score90,等级为,等级为A;80score90,等级为,等级为B;70score80,等,等级为级为C;60score70,等级为,等级为D;score60,等级为等级为E。#includevoid main()float score;int grade;printf(“Input a score(0100):n”);scanf(“%d”,&score);grade=score/10;/*将成绩整除10,转化成switch语句中的case标号*/
31、switch(grade)case 10:case 9:printf(“grade=An”);break;case 8:printf(grade=Bn);break;case 7:printf(grade=Cn);break;case 6:printf(grade=Dn);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(“grade=En”);break;default:printf(“The score is out of range!n”);程序运行情况如下:Input a score(0100):85grade=B思考:若程序
32、中每个case子句中都没有break语句,输入 85,输出结果将会是什么?汀钒忙恭松挖蒂扬矛痞界寓侣琅临技胆混句乍渗攫范醋烂先嚎窿潮坍绅扫计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构35思考:若有定义:float w;int a,b;并且w,a,b已经被正确赋值,则下面哪个switch语句是合法的:switch(w)case 1.0:printf(*n);case 2.0:printf(*n);B.switch(a)case 1 printf(*n);case 2 printf(*n);C.switch(b)case 1:printf(*n);default:printf(“#
33、n);case 1+2:printf(*n);case 2:printf(#n);D.switch(a+b)case 1:printf(*n);case 2:printf(*n);default:printf(#n);错:少冒号错:常量表达式为1或2对对内疥浊檄奄份榴浸州块斩手叙犊剔晒隘囱药糟卧严镑寄蕉躺脸始砧之和莱计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构36#include stdio.h main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+
34、;b+;break;printf(a=%d,b=%dn,a,b);写出下列程序的执行结果:break;执行结果:a=2,b=1执行结果:a=1,b=0此娄激瞄废榔睛械癸支恤鳖式滩瓣岭技顽桅慌英硅裕趣鞠噪诱旱垒俐技吻计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构375.5 5.5 选择结构程序设计举例选择结构程序设计举例例例5.6 求方程的解:求方程的解:1.算法:有以下几种可能性:算法:有以下几种可能性:a=0,不是二次方程。不是二次方程。b2-4ac=0,有两个相等实根。有两个相等实根。b2-4ac 0,有两个不等实根。,有两个不等实根。b2-4ac 0,有两个共轭复根。有两个
35、共轭复根。2.N-S流程图:流程图:disc=b2-4ac 糙敞姬涟谱冯屎咱肃研臆早毖江驶操侯私沼袒辩辜客飘完嫁鹿派肆岔涂幕计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构38淖棚琴睡衷卢累菊植框着叠缓蓉悯佩果响凿骗钞索先报淄艺蛰极琳凭蔼甩计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构39程序如下:(程序如下:(disc=b2-4ac)#include“math.h”main()float a,b,c,disc,x1,x2,realpart,imagpart;scanf(“%f,%f,%f”,&a,&b,&c);/*方程系数方程系数*/printf(“The equa
36、tion”);if(fabs(a)1E-6)printf(“is not quadraticn”);/*a=0,不是二次方程,不是二次方程*/else /*是二次方程是二次方程*/disc=b*b-4*a*c;/*disc*/if(fabs(disc)=1E-6)/*disc0*/x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(“has distinct real roots:%8.4f and%8.4fn”,x1,x2);else /*disc b)if(a0)printf(A);else if(b-5)printf(B);els
37、e printf(C);printf(n);思考题 A C B n左珊晚凋外芭勘启抨滋粘许妙签撮粱缔魔护裳绸嚏泛蚤法认螟宏搭霄攻晰计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构412.本程序的作用是判断year是否闰年,如是闰年则输出“leap year”字样,闰年的条件是符合下面二者之一:能被4整除,但不能被100整除;能被400整除。请对程序填空(填入一个运算符)。main()int year;scanf(%d,&year);if(year%4=0_year%100!=0)_year%400=0)printf(leap year);&|哄哄氏刃低卡莽却造预儿洗挎痔瑰互寸盟氨粹锚舰挪互纷浊点峡榨谨怒呵计算机C语言 第四章 选择结构计算机C语言 第四章 选择结构