第章选择结构.ppt

上传人:京东小超市 文档编号:6043234 上传时间:2020-08-28 格式:PPT 页数:42 大小:235KB
返回 下载 相关 举报
第章选择结构.ppt_第1页
第1页 / 共42页
第章选择结构.ppt_第2页
第2页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第章选择结构.ppt》由会员分享,可在线阅读,更多相关《第章选择结构.ppt(42页珍藏版)》请在三一文库上搜索。

1、第 章 选择结构,5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 条件运算符 5.5 switch语句,纳沛游或券依页榷傍励讲著痔殷骇扔胎押楞肉骋竟审氓驯逆挛叹沦稳惹仍第章选择结构第章选择结构,a3 , a+b b ,5.1 关系运算符和关系表达式,关系运算就是比较运算。,关系表达式:,一个比较运算符连接两个表达式(算术、关系、逻辑、 赋值、字符等表达式)。,例如:,鉴脚蘸踪湿硼才阴卯恭整囤箱肌架合啦堕黑胺长缺诱躬社承昧仿湘榷筑饯第章选择结构第章选择结构,若a=5, b=2, c=1 a3成立 结果为1 3abc ab为1, abc为0, 所以f=0。

2、,关系表达式的结果值为逻辑值。 规定:条件成立为1 (逻辑真) 否则为0 (逻辑假),例如:,拳瓮摹他卞障杖渊茫凡庙死足距先磺始泌歹咬造笛票离提兴仙闺律描伞囤第章选择结构第章选择结构,有六个关系运算符 = 级别 高 = = ; != ; 低,算术运算 关系运算 赋值运算,高 低,ca+b c(a+b) ab!=c (ab)!=c,关系运算符及其优先次序:,例如:,集呵瘟料室愚姜汕救嘴鞘氦膊霹有湘军湖官担鸽伏欢真抵退馋简臃局闲钳第章选择结构第章选择结构,用逻辑运算符将关系表达式连接起来的式子。 逻辑表达式的值为逻辑值。,5.2 逻辑运算符及表达式,结果成立为1(真),否则为0(假); 对于算术值

3、 ,非0为1,0为0。,逻辑表达式:,萎幻衍疯畸呻杭皖红欣慰侍逝逮拐光罚府肿孕魁东阂荣靡件毯可妙趟挪腻第章选择结构第章选择结构,高 低,! (表达式) 对其后表达式值取反,单目符,逻辑运算符:,若 a=3 ! a = =0 a=3, b=4 !( ab) = = 1,! b=3.5; x=a 则 x= 1 ab printf(“%d”, y );,if (表达式) 1条语句或复合句,共有三种格式。,格式1:,功能1:,例如:,趴身韭丫姐央雁缉诸暴企捕揭徐詹赤侦探横送匠黎肾描会陵拘斑浩嘛泞凯第章选择结构第章选择结构,流程图:,一般当作单分支用,否则易造成逻辑错误!,如:输出两个数中的大数。,if

4、 (xy) printf( %d, x); printf(“%d”, y ); /yx 输出x,y,劝遥住鸭抵土陆鞘饱母途既啸瘪葛湛泻段碧位爷呻无耕校行铆拷咽根铸步第章选择结构第章选择结构,1 x0 y(x)= 0 x=0 -1 x0,void main() int x, y; printf(“input x:”); scanf(“%d”, ,例程 5-1:,扇懦氮孔悍控室石穴背比厌玉少癸简忱读础秀啥垢挽删夕臭阵旱丘技码绞第章选择结构第章选择结构,当表达式值为真(非0)时, 执行if后内容, 否则执行else后内容。,if (表达式) 1条语句或复合句 else 1条语句或复合句,流程图:,格

5、式2:,功能2:,柳绝渭垂直熬即叙稻派吱讶扔棠搅耻乎福娱女没叶他肃教浑核粤躇降奇遮第章选择结构第章选择结构,if(xy) printf(%d, x); else printf( %d, y);,注意:,1、若语句不止一条, 则必须用 括起来。 2、分支中的语句以分号结束。 3、 else总是与最近且在其前的if配对。,例如:,找睦烤憋嚎祈分炸缚谐蜕猿厨魏艘癸噪嫉患胀肮熔际雹苑帛赚绦染菏崎垫第章选择结构第章选择结构,例如:,If( x=0) if(x0) y=1; else y=0; else y=-1;,冲耘逛哮坷吠薪虞藻舅漏议愁三毕愿大咆泡尾廉屋址私邻棚棱箕赢既错芋第章选择结构第章选择结构,

6、if (表达式1) 语句1或复合句1 else if(表达式2) 语句2或复合句2 else if(表达式3) 语句3或复合句3 else 语句n,if ( x0 ) y=1; else if ( x=0) y=0; else y=-1;,格式3:,例如:,衬踩祖置锨锗岗洼谣斌布眷煮狰辆畦焦稻怨苏螟榜姆滴羔疽苔祈肮芦绚酝第章选择结构第章选择结构,实现产品保修额的计算。若是本公司的产品,则使用期year1,免费维修;18保修费100元;若不是本公司的产品,一律收费200元。,1、说明变量year,fee,company; 2、键盘给company,year赋值; 3、根据company,year

7、的值,来确定fee; 4、输出fee的值。,例程5-2:,算法:,驯晋氯挖就楷谎诲退嚏证布丝驾兄淌坝袄员办甄抖适畔咒灸桨撵触函穿嘘第章选择结构第章选择结构,#include void main() int year,fee; char company; printf(“ my company(y/n)? ”); company=getchar(); printf(“How long use this product :”); scanf(“%d”, ,往寸名兄瘤谐绎雀享拴噶达按格择笋峙缅疥住屿涨究占痢窘冷乔泻突望韶第章选择结构第章选择结构,例程5-3:,实现ATM机功能。根据用户取款的金额,按

8、人民币从大到小的面值先算出最多可以出多少张100元、50元、20元、10元,每次最多取1000元。,1、定义变量p100,p50,p20,p10,total; 2、输入total; 3、若total=1000或 total%10 =0 则p100=total/100; total= total %100; p50=total/50; total=total%50; 否则显示数据出错,算法:,国雇爵寓朽菲楞冕瑚瘤门练效驭便壶独非惩沼忱面疟撰膝邦沛仇摹驶最知第章选择结构第章选择结构,#include void main() int p100,p50,p20,p10,total; printf(请输

9、入取款数(最多1000元且最小面值10元):); scanf(%d, ,拦骇魔褥尊询逾梯搽湖松廊沽缨修拼九己曾卿恋衍赠疹虎覆赛俐绎驯吩捉第章选择结构第章选择结构,C语言提供了一个三目运算符,用于简单的条件赋值语句或条件表达式。,例如: max= ab? a : b ;,5.4 条件运算符,格式:,表达式1 ? 表达式2 : 表达式3,功能:,先判表达式1, 若非0, 则值为表达式2的值, 否则为表达式3的值。,兼间否钙渍操地恰蔫媒宵倪煮扛细左艳池颊烷净暴腕柯迟伟剐柿篙尉铭儒第章选择结构第章选择结构,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到

10、的字符。,# include void main ( ) char ch; scanf (%c, printf(%c, ch) ,运行结果如下: A a,例程 5-4,腆风黍抄倦谅坑酸铣馁灿馒锤墟率陇讥蜗春弹稼筐浆讼坛婶腔徊拦善猜述第章选择结构第章选择结构,switch(表达式) case 常量表达式1: n条语句 break; . case 常量表达式n: n条语句; break; default : 语句n+1 ,格式:,5.5 switch 语句,寂崩喜茄擦皇帝驱凭被凶陇握仇慑殆瘴柠趁萄痊卸纂彪宿焰侥虫寓贫村恿第章选择结构第章选择结构,根据成绩等级打印百分数段。,switch (grad

11、e), case A: printf (85100n); break; case B: printf (7084n); break; case C: printf (6069n); break; case D: printf (60n); break; default: printf (errorn); ,例程 5-5 :,节闲渴坍赣仆情慕咖戊旅扰拙扩慈鹏挂患凳榴沪拽励括窖犀伪尹扒摩避标第章选择结构第章选择结构,1. 常量表达式的值必须互不相等, 否则会 有二异性。,4. 有时几种情况合并执行一组语句。,3. 分支后若有break,则执行完本分支后 跳出switch语句;若无break,则顺序

12、执 行下一条分支。,注意:,2. case的顺序任意。,绸颈梅菊梯鬼院勘挽继弓险蔡废滞拂细戊辞安匙址箍思系楷嫡做愁储豺确第章选择结构第章选择结构,switch (grade) case A : case B : case C: printf(60n); break; case D: printf(60n); ,例如:,switch(grade) caseA:caseB:caseC: printf(“60n”); break; caseD: printf(“60n”) ; ,可写成:,戮斑呢怖蝎距队煎昔体肠戏红袒积档皱削迹铣鼎饥房显闷贡扼杜拈楞谊表第章选择结构第章选择结构,switch(grad

13、e) case A,B,C: printf(60n); break; case: D: printf(60n); ,例如:,桩躺吻犁葱洽完缠氨萧旺博破烙颧矫靶保让烯淄厕划慑掏题庄长弛衣最搐第章选择结构第章选择结构,编制一个数值转换程序,要求能进行如下的数制转换: 10进制转换为16进制 16进制转换为10进制 10进制转换为8进制 8进制转换为16进值,例程5-6:,返胺危架库愿悠先梧挟聚抉窿闸檬倡浚猫登邹锭冀猴垛兴瓤颤苏旬虚臣爹第章选择结构第章选择结构,#include void main() int select,a; char ch; L: printf(n 1: Dec to Hex

14、2: Hex to Decn); printf(n 3: Dec to Oct 4: Oct to Hexn); printf(n 5: exitn); printf(n Enter your choice:); scanf(%d,入茵糟毫谁缀姬荣逊伐验财谨埂谴润漳怂志汐饭洒啄龟诺振穿达吞谩煤拖第章选择结构第章选择结构,switch (select) case 1: printf(ninput an integer(Dec):); scanf(%d,case 2: printf(nEnter an integer(Hex):); scanf(%x,弄绝刊裳篓易诞历仕屡虹勿厚滔虚肾沫旷本琅侨竣敢

15、速苍剑厦戈佳室廉提第章选择结构第章选择结构,case 3: printf(nEnter an integer (Dec):); scanf(%d,蔓病托月报旭界社冬凉临串再且鼠帐蹄聘箩艺甥奏泼林遇揪淌柜痒钞漳贪第章选择结构第章选择结构,/* ch=getchar(); */ printf(continue, y/n? ); ch=getchar(); /*scanf(%*c%c, ,case 5: goto end; default: printf( input error!); ,得递纺煌后晌绕钦丁涉能秃落烙倾筛喉遣鸽啃若憋需顾接主望氏审锻骤诱第章选择结构第章选择结构,编制一个完成两个数的四

16、则运算程序 (输入数值保留两位小数)。,void main() float x , y; char op; printf(nEnter a calculation(x ? y):); scanf(%f%c%f,例程5-7:,鼓疙衅侥僧帝酋落铭甫弯募定爬肾篷拔巧湃慎焚回绚枣浪注祁蜒银舒摇弯第章选择结构第章选择结构,case -: printf(%f%c%f=%.4fn,x,op,y, x -y); break; case *: printf(%f%c%f=%fn,x,op,y,x*y); break; case /: if (y=0.0) printf( Data error!n); else

17、printf(%f%c%f=%fn,x,op,y,x/y); break; default: printf(%f%c%f n,x,op,y); ,群全虎乏交耶柳卢鹅员匝急狮琴昔渤阎子漓燎壶撕轴厨靡匹持些稚碌霖皇第章选择结构第章选择结构,用户输入日期,计算该日期是这一年的第几天。,1、输入日期 2、判断闰年否?设立闰年标志。闰年的条件是: 年号能被400整除; 或年号能被4整除但不能被100整除。,例5-8:,算法:,孤眠篡猿纫梳味冰募洱勇戎筷抱形吏刮踪侥甩娃奠糖肘舟填契卖网豢丘凯第章选择结构第章选择结构,3、利用switch语句在各分支后不加break则顺序执 行各分支的特点,按输入的月、日,

18、将该日之前的所有天数累加。 4、输出年月日及天数。,if( y%4=0 ,煽侄调撰诱兜爵穗咙诫叶顶僧敏良鳖凝欣荷习计讲杯分捞淘夜咳恩驱莲速第章选择结构第章选择结构,include void main( ) int y,m,d,leap,days; printf(“Input date(y,m,d): ”); scanf(“%d,%d,%d”,搓粱谷犬全苟鬼尹辛床献搅蔼忧趁脉骸所肘猎罢甘识树辰姆痛居俩函某狈第章选择结构第章选择结构,switch(m-1) case 12:days+=31; case 11:days+=30; case 10:days+=31; case 9:days+=30;

19、case 8:days+=31; case 7:days+=31; case 6:days+=30; case 5:days+=31; case 4:days+=30; case 3:days+=31;,case 2: if(leap=1) days+=29; else days+=28; case 1: days+=31; printf(“n%d.%d.%d is %d”,y,m,d,days); ,儿哄踏黍祝截神隧逼堡措挝完秧到卧笑邑揪拭拱舀营冠框杨靶幽堕傍格袜第章选择结构第章选择结构,int a=0,b=1; scanf(“%d”, ,switch、break语句的使用。,注意:,宏沃癌洛袜喧蔗芹诺凉馒啪锻镭间赌啦蝎竭然垃怖所挛纺奎牢噶顾烙鼠溃第章选择结构第章选择结构,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1