c选择程序流程设计.pptx

上传人:莉*** 文档编号:87544435 上传时间:2023-04-16 格式:PPTX 页数:29 大小:247.90KB
返回 下载 相关 举报
c选择程序流程设计.pptx_第1页
第1页 / 共29页
c选择程序流程设计.pptx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《c选择程序流程设计.pptx》由会员分享,可在线阅读,更多相关《c选择程序流程设计.pptx(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、if语句(条件选择语句)if语句的三种形式形式一:格式:if(expression)statement执行过程:exprstatement非0=0例:if(xy)printf(“%d”,x);exprstatement1statement2非0=0l形式二:u格式:if(expression)statement1 else statement2u执行过程:例:if(xy)max=x;else max=y;第1页/共29页形式三:格式:if(expr1)statement1else if(expr2)statement2else if(expr3)statement3.else statemen

2、tn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行过程:例:if(salary1000)index=0.4;else if(salary800)index=0.3;else if(salary600)index=0.2;else if(salary400)index=0.1;else index=0;第2页/共29页如:if(a=b&x=y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a)printf(“%d”,a);l说明:uif后面的表达式类型任意u语句可以是复合语句u

3、 if(x)if(x!=0)if(!x)if(x=0)例 考虑下面程序的输出结果:#include main()int x,y;scanf(“%d,%d”,&x,&y);if(xy)x=y;y=x;else x+;y+;printf(“%d,%dn”,x,y);Compile Error!第3页/共29页/*ch4_1.c*/#include main()int x,y;printf(Enter an integer:);scanf(%d,&x);y=x;if(yabsolute value:%dn,x,y);例 求一个数的绝对值运行:Enter an integer:-12 integer:

4、-12-absolute value:12第4页/共29页/*ch4_2.c*/#include main()int a,b;printf(Enter integer a:);scanf(%d,&a);printf(Enter integer b:);scanf(%d,&b);if(a=b)printf(a=bn);else printf(a!=bn);例 输入两个数并判断两数相等否运行:Enter integer a:12 Enter integer b:12 a=b 运行:Enter integer a:12 Enter integer b:9 a!=b 第5页/共29页/*ch4_3.c

5、*/#include main()char c;printf(Enter a character:);c=getchar();if(c=0&c=A&c=a&c=z)printf(The character is a lower lettern);else printf(The character is other charactern);例 判断输入字符种类运行:Enter a character:The character is a control character运行:Enter a character:8 The character is a digit运行:Enter a chara

6、cter:D The character is a capital letter运行:Enter a character:h The character is a lower letter运行:Enter a character:F1 The character is other character第6页/共29页vif语句嵌套:l一般形式:if(expr1)if(expr2)statement1 else statement2else if(expr3)statement3 else statement4内嵌if内嵌ifif(expr1)if(expr2)statement1 else st

7、atement2内嵌ifif(expr1)if(expr2)statement1else statement3 内嵌ifif(expr1)statement1else if(expr3)statement3 else statement4内嵌if第7页/共29页例 输入两数并判断其大小关系/*ch4_4.c*/#include main()int x,y;printf(Enter integer x,y:);scanf(%d,%d,&x,&y);if(x!=y)if(xy)printf(XYn);else printf(XYn);else printf(X=Yn);运行:Enter integ

8、er x,y:12,23 XY Enter integer x,y:12,12 X=Y第8页/共29页if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.第9页/共29页例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);实现if else 正确配对方法:加 第10页/共29页例 考虑下面程序输出结果:main()int x=100,a=10,b=20;i

9、nt v1=5,v2=0;if(a60n”);break;.第13页/共29页例 switch(score)case 5:printf(“Very good!”);case 4:printf(“Good!”);case 3:printf(“Pass!”);case 2:printf(“Fail!”);default :printf(“data error!”);运行结果:score为5时,输出:Very good!Good!Pass!Fail!data error!第14页/共29页例 void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(

10、y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“na=%d,b=%d”,a,b);运行结果:a=2,b=1第15页/共29页/*ch4_5.c*/#include main()int c;printf(Enter m or n or h or other:);c=getchar();switch(c)case m:printf(nGood morning!n);break;case n:printf(nGood night!n);break;case h:printf(nHello!n);bre

11、ak;default:printf(n?n);break;例 根据输入字母输出字符串第16页/共29页一、if if 语句的的综合应用例1:求一元二次方程ax2+bx+c=0的实根解(设a0)。补充例题:输入任意三个数,按由大到小顺序排列输出。补充例题:输入任意三个数,按由大到小顺序排列输出。例例2 2:闰年判断程序。:闰年判断程序。例3:学生成绩分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成绩,按平均成绩分等显示:excellence(优秀):平均成绩90;all right(良好):80平均成绩90;middling(中等):70平均成绩80;pass(及格):60平

12、均成绩70;fail(不及格):平均成绩=0)x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%f,x2=%f,x1,x2);返回扩充到复数根第18页/共29页#include math.h main()float a,b,c;float x1,x2,d;printf(Please Input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);d=b*b-4*a*c;if(d=0)x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%f,x2=%f,x1,x2);返回fl

13、oat realpart,imagpart;else realpart=-b/(2*a);imagpart=sqrt(-d)/(2*a);printf(x1=%f+%fin,realpart,imagpart);printf(x2=%f-%fin,realpart,imagpart);第19页/共29页补充例题:输入任意三个数,按由大到小顺序排列输出。结束输出a,b,c开始输入a,b,cabNoYes交换a与b的值bcNoYes交换b与c的值acNoYes交换a与c的值a为三数中最大者b为三数中次大者a为a,b中最大者main()int a,b,c,t;printf(Please Input

14、a,b,c:);scanf(%d,%d,%d,&a,&b,&c);if (ab)t=a;a=b;b=t;if (ac)t=a;a=c;c=t;if (b=b&b=c翻译为C语言表达式a=c&c=bb=a&a=cb=c&c=ac=a&a=bc=b&b=amain()int a,b,c;printf(Please input a b c:);scanf(%d%d%d,&a,&b,&c);if(a=b&b=c)printf(%d,%d,%dn,a,b,c);if(a=c&c=b)printf(%d,%d,%dn,a,c,b);if(b=a&a=c)printf(%d,%d,%dn,b,a,c);if

15、(b=c&c=a)printf(%d,%d,%dn,b,c,a);if(c=a&a=b)printf(%d,%d,%dn,c,a,b);if(c=b&b=a)printf(%d,%d,%dn,c,b,a);返回第21页/共29页综合上述两种情况,得到闰年判别条件的逻辑表达式:例例2 2:闰年判断程序。:闰年判断程序。main()int year;printf(Type in a year:n);scanf(%d,&year);if(year%400=0|year%4=0&year%100!=0)printf(%d is a leap year.n);else printf(%d is not

16、a leap year.n);闰年的判别条件:(假设年份变量用闰年的判别条件:(假设年份变量用yearyear表示)表示)当yearyear是400400的整倍数时为闰年;条件表示为:year%400=0 当yearyear是4 4的整倍数,但不是100100的整倍数时为闰年。条件表示为:year%4=0&year%100!=0year%400=0|year%4=0&year%100!=0返回第22页/共29页例例3 3:学生成绩分等显示程序。学生有数学、英语两门课。:学生成绩分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成绩,按平均成绩分等显示:按百分制考核。要求输入各门

17、课成绩,按平均成绩分等显示:excellenceexcellence(优秀):(优秀):平均成绩平均成绩9090;all rightall right(良好):(良好):8080平均成绩平均成绩9090;middlingmiddling(中等):(中等):7070平均成绩平均成绩8080;passpass(及格):(及格):6060平均成绩平均成绩7070;failfail(不(不及格):及格):平均成绩平均成绩60=90)printf(excellencen);else if(ave=80)printf(all rightn);else if(ave=70)printf(middlingn)

18、;else if(ave=60)printf(passn);else printf(failn);返回第23页/共29页二、switch switch 语句的综合应用例3:学生成绩分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成绩,按平均成绩分等显示。excellence(优秀):平均成绩90;all right(良好):80平均成绩90;middling(中等):70平均成绩80;pass(及格):60平均成绩70;fail(不及格):平均成绩60。返回补充例题:编写计算器程序。用户输入运算数和四则运补充例题:编写计算器程序。用户输入运算数和四则运 算符,输出计算结果。算

19、符,输出计算结果。第24页/共29页main()float a,b;int ave;scanf(%f,%f,&a,&b);ave=(a+b)/2;switch(ave/10)case 10:case 9:printf(excellencen);break;case 8:printf(all rightn);break;case 7:printf(middlingn);break;case 6:printf(pathn);break;default:printf(failn);返回采用采用switchswitch编程时,要注意编程时,要注意精选精选switchswitch后的表达式:后的表达式:

20、(1 1)若采用平均值)若采用平均值aveave 将有将有101101种可能;种可能;(2 2)若采用:)若采用:ave/10 ave/10 只有只有1111种结果,再经种结果,再经 过合并后仅剩下过合并后仅剩下5 5种。种。switchswitch语句在开发应用程序语句在开发应用程序时用途广泛。时用途广泛。例例3 3:学生成绩:学生成绩分等显示程序。分等显示程序。第25页/共29页补充例题:编写计算器程序。用户输入运算数和四则运补充例题:编写计算器程序。用户输入运算数和四则运 算符,输出计算结果。算符,输出计算结果。#include main()int a,b,result=0;char c

21、h;printf(nnInput a,b:);scanf(%d,%d,&a,&b);printf(Input one of(+,-,*,/):);getchar();ch=getchar();switch(ch)case+:result=a+b;break;case-:result=a-b;break;case*:result=a*b;break;case/:result=a/b;break;default:printf(operator is wrong!);printf(nresult=%d,result);返回第26页/共29页分支结构控制语句-小结1实现分支结构的控制语句主要有if语句

22、、switch语句。if语句通常有if、if else、if-else if三种形式。2if语句任何一种if语句的语句体中都可以出现其他的if结构,这种结构称为if语句的嵌套结构。在理论上if嵌套的层数没有限制,但当嵌套层数较多时,容易使程序在逻辑上变得不清晰。3switch语句专门用于多路分支选择,适用于if else if式的结构,而且更清晰。程序总是试图从满足条件的第一个case子句开始执行其后的所有语句,而不再对其后的case进行判断。因此,通常使用break语句中断switch语句的运行。第27页/共29页分支结构程序设计-小结分支结构是三大结构之一,分支结构程序设计是C语言编程的重要内容。要根据具体问题具体分析,灵活使用if语句的三种形式。多分支结构编程可以采用if-esle if结构,亦可以采用switch语句结构。注意这两种结构用法上的主要区别:if-esle if是多条件多分支结构,其中的各条件表达式能够表示范围;而switch语句是根据一个表达式的多个结果实现多分支编程,其结构中的表达式通常为整型或字符型。勤思考、多动手、常比较、善积累是提高编程水平的有效途径。第28页/共29页感谢您的欣赏!第29页/共29页

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

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com