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

上传人:仙*** 文档编号:232553516 上传时间:2023-09-21 格式:PPT 页数:34 大小:219KB
收藏 版权申诉 举报 下载
C程序设计第4章选择结构程序设计_第1页
第1页 / 共34页
C程序设计第4章选择结构程序设计_第2页
第2页 / 共34页
C程序设计第4章选择结构程序设计_第3页
第3页 / 共34页
资源描述:

《C程序设计第4章选择结构程序设计》由会员分享,可在线阅读,更多相关《C程序设计第4章选择结构程序设计(34页珍藏版)》请在装配图网上搜索。

1、1高级语言程序设计 南京邮电大学传媒技术学院第第4 4章章 选择结构程序设计选择结构程序设计2高级语言程序设计 南京邮电大学传媒技术学院单分支:单分支:if(表达式表达式)语句;语句;其他语句;其他语句;双分支:双分支:if(表达式表达式)语句语句1;else语句语句2;其他语句;其他语句;多分支:多分支:if(if(表达式表达式1 1)语句语句1 1;else if(else if(表达式表达式2 2)语句语句2 2;else if(else if(表达式表达式n n)语句语句n n;else else 语句语句n+1n+1;3高级语言程序设计 南京邮电大学传媒技术学院4.14.1引言引言输

2、出两个数中的较大值?输出两个数中的较大值?#include#include intint main()main()intint a,b;a,b;scanf(scanf(“%d%d%d%d”,&a,&b);,&a,&b);printf(printf(“%d%d”,xxx);,xxx);return 0;return 0;4高级语言程序设计 南京邮电大学传媒技术学院4.2 关系运算符和关系表达式1、关系运算符、关系运算符、=、=、!=2、关系表达式、关系表达式用关系运算符连接起来的式子。用关系运算符连接起来的式子。53、5=3、53、5b)printf(“Thebiggerisa=%dn”,a);

3、elseprintf(“Thebiggerisb=%dn”,b);常用常用“”表示表示“a大于大于b”这样的条件:这样的条件:条件成立时,条件成立时,ab为非零,执行受为非零,执行受if控制的语句;控制的语句;条件不成立时,条件不成立时,ab为零,执行受为零,执行受else控制的语句;控制的语句;11高级语言程序设计 南京邮电大学传媒技术学院inta,b;scanf(“%d%d”,&a,&b);if(ab)printf(“Thebiggerisb=%dn”,a);elseprintf(“Thebiggerisa=%dn”,a);常用常用“”表示表示“a小于于小于于b”这样的条件:这样的条件:条

4、件成立时,条件成立时,ab为非零,执行受为非零,执行受if控制的语句;控制的语句;条件不成立时,条件不成立时,a=b)if(ac)printf(“Thebiggestisa=%dn”,a);elseprintf(“Thebiggestisc=%dn”,c);elseif(bc)printf(“Thebiggestisb=%dn”,b);elseprintf(“Thebiggestisc=%dn”,c);ifif语句的嵌套语句的嵌套13高级语言程序设计 南京邮电大学传媒技术学院3、多分支选择多分支选择if语句语句 语句形式:语句形式:if(if(表达式表达式表达式表达式11)语句语句语句语句11

5、;elseelseif(if(表达式表达式表达式表达式22)语句)语句)语句)语句22;elseelseif(if(表达式表达式表达式表达式nn)语句语句语句语句nn;elseelse语句语句语句语句n+1n+1;if-elseif-else匹配原匹配原则:就近匹配则:就近匹配14高级语言程序设计 南京邮电大学传媒技术学院例:计算分段函数。例:计算分段函数。#includevoidmain()floatx,y;printf(enterx:);scanf(%f,&x);elseif(x=1)y=x+5;elseif(xb&ac)printf(“Thebiggestisa=%dn”,a);if(b

6、a&bc)printf(“Thebiggestisb=%dn”,b);if(ca&cb)printf(“Thebiggestisc=%dn”,c);16高级语言程序设计 南京邮电大学传媒技术学院当多个条件之一成立,即可做某些事情,要借助于当多个条件之一成立,即可做某些事情,要借助于当多个条件之一成立,即可做某些事情,要借助于当多个条件之一成立,即可做某些事情,要借助于“|”运算符来组合各条件成为一个大条件。运算符来组合各条件成为一个大条件。运算符来组合各条件成为一个大条件。运算符来组合各条件成为一个大条件。inttime;scanf(“%d”,&time);if(time=100|time=-

7、1)printf(“you完蛋了完蛋了!”);elseprintf(“you还有希望,努力改造!还有希望,努力改造!”);17高级语言程序设计 南京邮电大学传媒技术学院&|!等等逻逻辑辑运运算算符符常常用用来来表表示示由由多多个个条条件件组组合合而成的大条件;而成的大条件;原则:大条件成原则:大条件成立,逻辑表达式的值为非零;立,逻辑表达式的值为非零;大条件不成立,逻辑表达式的值为零;大条件不成立,逻辑表达式的值为零;(判断闰年)(判断闰年)18高级语言程序设计 南京邮电大学传媒技术学院【例例例例例例4-34-34-3】从键盘输入一个字符,判别它的类别从键盘输入一个字符,判别它的类别从键盘输入

8、一个字符,判别它的类别从键盘输入一个字符,判别它的类别从键盘输入一个字符,判别它的类别从键盘输入一个字符,判别它的类别由由由由ASCIIASCII码表可知:码表可知:码表可知:码表可知:ASCIIASCII值小于值小于值小于值小于3232的为控制字符的为控制字符的为控制字符的为控制字符ASCIIASCII值在值在值在值在 00和和和和 99之间的为数字之间的为数字之间的为数字之间的为数字ASCIIASCII值在值在值在值在 AA和和和和 ZZ之间为大写字母之间为大写字母之间为大写字母之间为大写字母 ASCIIASCII值在值在值在值在 aa和和和和 zz之间为小写字母之间为小写字母之间为小写字

9、母之间为小写字母其余则为其它字符其余则为其它字符其余则为其它字符其余则为其它字符19高级语言程序设计 南京邮电大学传媒技术学院程序:程序:程序:程序:#include#include voidmain()voidmain()charc;charc;printf(Inputprintf(Inputacharacter:);acharacter:);c=c=getchargetchar();();if(cif(c32)=0&c=0&c=A&cA&c=Z)=a&ca&c=z)printf(Thisz)printf(This isasmalllettern);isasmalllettern);else

10、elseprintf(Thisprintf(Thisisanothercharactern);isanothercharactern);20高级语言程序设计 南京邮电大学传媒技术学院【例例例例4-44-4】比较两个数的大小关系,有三种比较两个数的大小关系,有三种比较两个数的大小关系,有三种比较两个数的大小关系,有三种结果:大于、小于和等于,采用结果:大于、小于和等于,采用结果:大于、小于和等于,采用结果:大于、小于和等于,采用if if语句的嵌语句的嵌语句的嵌语句的嵌套结构来完成。套结构来完成。套结构来完成。套结构来完成。#include#include voidmain()voidmain(

11、)intint a,ba,b;printf(pleaseprintf(pleaseinputinputa,ba,b:);:);scanf(%d%d,&a,&bscanf(%d%d,&a,&b););if(aif(a!=b)!=b)if(aif(ab)b)printf(aprintf(a bnbn););elseelseprintf(aprintf(a bnbn););elseelseprintf(aprintf(a=bnbn););21高级语言程序设计 南京邮电大学传媒技术学院4.5 多分支选择语句语句一般形式:语句一般形式:switch(表达式)表达式)case常量常量1:语句语句1;cas

12、e常量常量2:语句语句2;case常量常量3:语句语句3;.case常量常量n:语句语句n;default:语句语句n+1;根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,又称开关语句又称开关语句又称开关语句又称开关语句。常量表达式的值必须常量表达式的值必须互不相同,否则执行互不相同,否则执行时将出现矛盾,即同时将出现矛盾,即同一个开关值,将对应一个开关值,将对应多种执行方案。多种执行方案。千万不能千万不能接接(;)号号执执行行过过程程?22高级语言程序设计 南京邮电大学传媒技术学院

13、【例例例例4-64-6】输入一个数字,输出对应的星期输入一个数字,输出对应的星期输入一个数字,输出对应的星期输入一个数字,输出对应的星期几的英文单词。几的英文单词。几的英文单词。几的英文单词。#include#include voidmain()voidmain()intinta;a;printf(inputprintf(inputintegernumber:);integernumber:);scanf(%d,&ascanf(%d,&a););switch(a)switch(a)case1:printf(Mondayn);case1:printf(Mondayn);case2:printf(

14、Tuesdayn);case2:printf(Tuesdayn);case3:printf(Wednesdayn);case3:printf(Wednesdayn);case4:printf(Thursdayn);case4:printf(Thursdayn);case5:printf(Fridayn);case5:printf(Fridayn);case6:printf(Saturdayn);case6:printf(Saturdayn);case7:printf(Sundayn);case7:printf(Sundayn);default:printf(errorndefault:prin

15、tf(errorn););程序运行结果:程序运行结果:程序运行结果:程序运行结果:inputintegernumber:5inputintegernumber:5 FridayFridaySaturdaySaturdaySundaySundayerrorerror23高级语言程序设计 南京邮电大学传媒技术学院4.5.2break4.5.2break语句在多分支选择结构中的应用语句在多分支选择结构中的应用语句在多分支选择结构中的应用语句在多分支选择结构中的应用breakcasecase语句后加上语句后加上语句后加上语句后加上breakbreak语句;语句;语句;语句;每当执行到每当执行到每当执行

16、到每当执行到breakbreak语句时,立即跳出语句时,立即跳出语句时,立即跳出语句时,立即跳出switchswitch语句体。语句体。语句体。语句体。24高级语言程序设计 南京邮电大学传媒技术学院将上面的例将上面的例4-4-6 6修改如下:修改如下:#includestdio.hvoidmain()inta;printf(inputintegernumber:);scanf(%d,&a);switch(a)case1:printf(Mondayn);break;case2:printf(Tuesdayn);break;case3:printf(Wednesdayn);break;case4:

17、printf(Thursdayn);break;case5:printf(Fridayn);break;case6:printf(Saturdayn);break;case7:printf(Sundayn);break;default:printf(Errorn);程序运行结果:程序运行结果:55FridayFriday 25高级语言程序设计 南京邮电大学传媒技术学院【例例例例4-74-7】学生分数成绩转换为相应的等级成绩学生分数成绩转换为相应的等级成绩学生分数成绩转换为相应的等级成绩学生分数成绩转换为相应的等级成绩程序流程图程序流程图:26高级语言程序设计 南京邮电大学传媒技术学院程序源代码

18、及运行结果程序源代码及运行结果程序源代码及运行结果程序源代码及运行结果#include#include voidmain()voidmain()intints;s;printf(Inputprintf(Inputascore:);ascore:);scanf(%d,&sscanf(%d,&s);/s);/s中存放学生的成绩中存放学生的成绩中存放学生的成绩中存放学生的成绩 printf(Yourprintf(Your score:%dscore:%d,s);,s);switch(s/10)/switch(s/10)/巧妙利用整除,把一个区间段范围的值对应到一个数据上巧妙利用整除,把一个区间段范围

19、的值对应到一个数据上巧妙利用整除,把一个区间段范围的值对应到一个数据上巧妙利用整除,把一个区间段范围的值对应到一个数据上case10:case10:case9:s=A;break;case9:s=A;break;case8:s=B;break;case8:s=B;break;case7:s=C;break;case7:s=C;break;case6:s=D;break;case6:s=D;break;default:s=E;default:s=E;printf(%cn,sprintf(%cn,s););程序运行结果:程序运行结果:程序运行结果:程序运行结果:Inputascore:65Inpu

20、tascore:65 Yourscore:65DYourscore:65D 1 1、多个、多个casecase语句可以语句可以共用一组执行语句。共用一组执行语句。2 2、各、各casecase子句的先后子句的先后顺序可以变动,而不会顺序可以变动,而不会影响程序执行结果。影响程序执行结果。27高级语言程序设计 南京邮电大学传媒技术学院4.6 4.6 应用举例应用举例【例例例例4-84-8】输入三个整数,输出最大数和最小数。输入三个整数,输出最大数和最小数。输入三个整数,输出最大数和最小数。输入三个整数,输出最大数和最小数。算法分析:算法分析:算法分析:算法分析:l l首先比较首先比较首先比较首先

21、比较a a,b b的大小,把大数装入的大小,把大数装入的大小,把大数装入的大小,把大数装入maxmax,小数装,小数装,小数装,小数装入入入入minmin中中中中l l接下来接下来接下来接下来maxmax和和和和minmin再与再与再与再与c c比较,若比较,若比较,若比较,若maxmax小于小于小于小于c c,则把,则把,则把,则把c c赋予赋予赋予赋予maxmax;如果;如果;如果;如果c c小于小于小于小于minmin,则把,则把,则把,则把c c赋予赋予赋予赋予minmin,因,因,因,因此此此此maxmax内总是最大数,而内总是最大数,而内总是最大数,而内总是最大数,而minmin内

22、总是最小数。内总是最小数。内总是最小数。内总是最小数。l l最后输出最后输出最后输出最后输出maxmax和和和和minmin的值即可。的值即可。的值即可。的值即可。28高级语言程序设计 南京邮电大学传媒技术学院程序源代码及运行结果程序源代码及运行结果程序源代码及运行结果程序源代码及运行结果#include#include voidmain()voidmain()intint a,b,c,max,mina,b,c,max,min;printf(inputprintf(inputthreenumbers:);threenumbers:);scanf(%d%d%d,&a,&b,&cscanf(%d%

23、d%d,&a,&b,&c););if(aif(ab)max=b)max=a;mina;min=b;=b;elsemax=elsemax=b;minb;min=a;=a;if(maxif(maxc)max=c;c)min=c;c)min=c;printf(maxprintf(max=%=%dnmindnmin=%=%d,max,mind,max,min););程序运行结果:程序运行结果:程序运行结果:程序运行结果:inputthreenumbers:345inputthreenumbers:345 max=5max=5min=3min=329高级语言程序设计 南京邮电大学传媒技术学院例例:企企业

24、业发发放放的的奖奖金金根根据据利利润润提提成成。从从键键盘盘输输入入当当月利润,求应发放奖金总数?月利润,求应发放奖金总数?30高级语言程序设计 南京邮电大学传媒技术学院利润xx=1010 x2020 x4040 x6060 x100100 x(int)x/10 常量常量0,11,22,3,44,5,66,7,8,9,1010以上用这种方法转换后,用这种方法转换后,n n出现了在不同区域有重复数字出现了在不同区域有重复数字的情况。解决的方法有很多,其中一种是可以采用当的情况。解决的方法有很多,其中一种是可以采用当x x为为1010的整数倍时,将计算出的的整数倍时,将计算出的n n值减值减1 1

25、。使用使用switchswitch解题的解题的关键,关键,通过分通过分析找到析找到表达式,表达式,将问题将问题分成几分成几种情况。种情况。31高级语言程序设计 南京邮电大学传媒技术学院#includestdio.hvoidmain()floatx,y;intn;scanf(%f,&x);n=(int)x/10;if(int)x/10=x/10)n-;switch(n)case0:y=x*0.1;break;case1:y=x*0.12;break;case2:case3:y=x*0.14;break;case4:case5:y=x*0.16;break;case6:case7:case8:ca

26、se9:y=x*0.18;break;default:y=x*0.2;printf(y=%.2fn,y);源程序:源程序:32高级语言程序设计 南京邮电大学传媒技术学院【例例例例4-114-11】任意输入三个数,代表三角形任意输入三个数,代表三角形任意输入三个数,代表三角形任意输入三个数,代表三角形的三条边长,判断能否构成三角形的三条边长,判断能否构成三角形的三条边长,判断能否构成三角形的三条边长,判断能否构成三角形#include#include voidmain()voidmain()floatfloata,b,ca,b,c;scanf(%f,%f,%f,&a,&b,&cscanf(%f,

27、%f,%f,&a,&b,&c););if(a+bif(a+b)c&(a+cc&(a+c b)&(b+cb)&(b+ca)a)if(aif(a=b)&(bb)&(b=c)=c)printf(equalateralprintf(equalateraltriangle.n);triangle.n);elseelseif(aif(a=b)|(ab)|(a=c)|(bc)|(b=c)=c)printf(isoscelestriangle.nprintf(isoscelestriangle.n););elseelseprintf(otherprintf(othertriangle.n);triangle.

28、n);elseelseprintf(canprintf(cannotn);notn);程序运行结果:程序运行结果:5,5,55,5,5equalateralequalateral triangle.triangle.33高级语言程序设计 南京邮电大学传媒技术学院小结小结 l l关系运算符、逻辑运算符、关系表达式。关系运算符、逻辑运算符、关系表达式。关系运算符、逻辑运算符、关系表达式。关系运算符、逻辑运算符、关系表达式。l这些表达式常作为条件选择语句的判断条件。这些表达式常作为条件选择语句的判断条件。这些表达式常作为条件选择语句的判断条件。这些表达式常作为条件选择语句的判断条件。l lC C语言

29、的条件选择语句有两种:语言的条件选择语句有两种:语言的条件选择语句有两种:语言的条件选择语句有两种:if if语句和语句和语句和语句和switchswitch语句语句语句语句l lif if语句有三种形式:语句有三种形式:语句有三种形式:语句有三种形式:l l单分支选择单分支选择单分支选择单分支选择if if语句语句语句语句l l双分支选择双分支选择双分支选择双分支选择if if语句语句语句语句l l多分支选择多分支选择多分支选择多分支选择if if语句语句语句语句l lswitchswitch语句联合语句联合语句联合语句联合breakbreak语句构成了一种多分支选择结语句构成了一种多分支选择结语句构成了一种多分支选择结语句构成了一种多分支选择结构,并且形式上比用构,并且形式上比用构,并且形式上比用构,并且形式上比用ifif语句的嵌套清晰易读。语句的嵌套清晰易读。语句的嵌套清晰易读。语句的嵌套清晰易读。34高级语言程序设计 南京邮电大学传媒技术学院第一次第一次 P52:P52:4.14.14.14.1、4.44.44.44.4、4.84.84.84.8第二次第二次 P52:P52:4.64.64.64.6、4.104.104.104.10 作业作业

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!