选择结构程序结构设计.ppt_第1页
选择结构程序结构设计.ppt_第2页
选择结构程序结构设计.ppt_第3页
选择结构程序结构设计.ppt_第4页
选择结构程序结构设计.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第 4 章,选择结构程序设计,2,第四章 选择结构程序设计,一、关系运算符和关系表达式 二、逻辑运算符和逻辑表达式 三、使用if语句实现的选择结构 四、条件运算符和条件表达式 五、switch语句 六、选择结构程序举例,主要内容,3,关系运算符,= = != (6种,第四章 选择结构程序设计,优先级,赋值 关系( 后2前4 ) 算术,关系表达式,用关系运算符将两个表达式连接起来的式子,算术、关系、逻辑、赋值、字符,值,真(1) 假(0,53,一、关系运算符和关系表达式,4,21,9,举例,已知 a=5,b=4,c=3,d=7 求下列表达式的值,a+b=c*d,abc,a!=bc,a+b=c

2、*d,0,abc,1,0,a != b c,0,1,算术运算符的优先级高于关系运算符,不能用于判断b的值是否在a 与c 之间,”运算符的优先级高于“,5,逻辑运算符,(逻辑非) if (a1,1,1,7,选择结构,单分支,双分支,if (表达式) 语句,多分支,if (表达式) 语句else 语句,if (表达式1) 语句 else if (表达式) 语句 else 语句n,if 语句的嵌套,switch语句,第四章 选择结构程序设计,选择结构的分类,8,格式,流程图,第四章 选择结构程序设计,if (表达式) 语句,三、if语句实现选择结构 单分支,if (xy) printf(“%d”,x

3、,举例,9,例4.5,第四章 选择结构程序设计,include stdio.h int main( ) int num1,num2,max; printf(input two numbers: n ); scanf(%d%d,56 41 max=56,三、if语句实现选择结构 单分支,输入两个整数,输出其中较大的数,10,例4.6,第四章 选择结构程序设计,include int main() float a,b,t=0; scanf(“%f,%f”,3,4 3.00, 4.00,if (ab) t=a; a=b; b=t;,if (ab) t=a; a=b; b=t;,3,4 4.00, 0

4、.00,当某些语句作为一个整体出现的时候,必须是复合语句的形式,三、if语句实现选择结构 单分支,输入两个实数,按由小到大的数序输出它们,11,格式,if (xy) printf(“%d”,x); else printf(“%d”,y,第四章 选择结构程序设计,if (表达式) 语句else 语句,三、if语句实现选择结构 双分支,举例,流程图,12,第四章 选择结构程序设计,include int main() float a,b,c,p,s; scanf(“%f,%f,%f”,输入三角形的三边,求三角形的面积,3,4,5 s= 6.00,3,4,8 Not a triangle,三、if语

5、句实现选择结构 双分支,例4.9,13,编程实现如下分段函数,输出结果保留2位小数,练习1,include #include int main() float x,y; scanf(“%f”,这4行包含 几条语句,if(x0) y=sqrt(x,14,编程实现分段函数,例4.11,0x else if(x=10) y=1.0/x; else if(x=20) y= y=2*x+1; else y=5*x-1,输出y,15,第四章 选择结构程序设计,if (表达式1) 语句组 else if (表达式) 语句组 else if (表达式n) 语句组n else 语句组n+1,三、if语句实现选择

6、结构 多分支,1)ifelse if形式,16,include stdio.h int main( ) float x,y; scanf(%f,第一次运行,5 x=5.00,y=0.20,15 x=15.00,y=31.00,第二次运行,21.67 x=21.67, y=107.35,第三次运行,程序如下,17,编程实现分段函数 换一种判断顺序,例4.11,y=1.0/x,y=5*x-1,if(x=10) if(x=0) y=0; else y=1.0/x; else if(x=20) y=2*x+1; else y=5*x-1,输出y,if(x=10) if(x=0) y=0; else y

7、=1.0/x; else if(x=20) y=2*x+1; else y=5*x-1,18,if语句的嵌套,第四章 选择结构程序设计,if (表达式) if (表达式) 语句 else 语句 else if (表达式3) 语句3 else 语句4,注意,if与else的配对原则: 从else入手,找它上面最近的未配对的if配对,三、if语句实现选择结构 多分支,2)if语句嵌套结构,19,练习,第四章 选择结构程序设计,已知a=3 b=4 c=5 d=0, d=,if (ab)d=a; else if (cb) d=c; else d=b,if (ab) if (cb) d=c; else

8、d=b,if (ab) if (cb) d=c; else d=b,if (ab) if (cb) d=c; else d=b; else d=a,d=5,d=3,d=0,d=4,20,使用if语句中应注意的问题,在if关键字之后的括弧内为表达式,该表达式通常是逻辑表达式或关系表达式,但也可以是其它任何合法的C表达式 条件判断表达式必须用括弧括起来,后面没有分号。但在语句之后必须加分号。 如果希望在满足/不满足条件时执行一组(多个)语句,则必须把这一组语句用 括起来组成一个复合语句,include int main() float a,b,c,p,s; scanf(“%f,%f,%f”,21,

9、条件运算符 条件表达式,举例,if (ab) max=a; else max=b,第四章 选择结构程序设计,表达式?表达式:表达式,max= (ab)? a : b,条件运算符的使用条件,若if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,则可以用简单的条件运算符来处理,取值,表达式1为真,则取值为表达式2的值; 表达式1为假,则取值为表达式3的值,四、条件运算符和条件表达式,右结合方向,22,使用条件表达式求两个数的较大值。(自己看,include stdio.h int main( ) float num1,num2,max=0; scanf(%f,%f,例4.

10、14,第一次运行,3.2,4 4.00,第二次运行,4,3.2 4.00,23,思考,一个简单的菜单选择程序,示例1,示例2,if-else,switch,24,开关语句,第四章 选择结构程序设计,switch (表达式) case 常量表达式1:语句组1 case 常量表达式2:语句组2 case 常量表达式3:语句组3 case 常量表达式n:语句组n default: 语句组n+1,五、switch 语句实现多分支,break,执行过程,定位入口、依次执行、遇break跳出,整型或字符型,25,例4.17,include void main() char grade; printf(“请

11、输入考试等级AD:”); scanf(“%c”,B,根据输入的考试成绩等级打印出百分制分数段。 A: 80100 B: 7079 C: 6069 D: 60,说明:应在每一个printf后加break语句,第四章 选择结构程序设计,7079 6069 60 Error,26,include void main() char grade; printf(“请输入考试等级AD:”); scanf(“%c”,B 7079,最后一行的break可以省略,第四章 选择结构程序设计,例4.17,根据输入的考试成绩等级打印出百分制分数段。 A: 80100 B: 7079 C: 6069 D: 60,27,

12、思考,示例1,示例2,28,思考 (例4.18,include void main() int score; printf(“请输入考试成绩0100:”); scanf(“%d”,根据输入的考试成绩(百分制整数)打印出等级水平。(使用ifelse语句实现) A: 80100 B: 7079 C: 6069 D: 60,思考:使用switch语句如何实现,程序,第四章 选择结构程序设计,29,include void main() int score; printf(“请输入考试成绩0100:”); scanf(“%d”,根据输入的考试成绩(百分制整数)打印出等级水平。(使用switch语句实现

13、) A: 80100 B: 7079 C: 6069 D: 60,思考:本程序有问题么,程序,思考 (例4.18,30,include void main() int score; printf(“请输入考试成绩0100:”); scanf(“%d”,太麻烦了 有没有简单的办法呢,改进程序1,101种情况,思考 (例4.18,根据输入的考试成绩(百分制整数)打印出等级水平。(使用switch语句实现) A: 80100 B: 7079 C: 6069 D: 60,31,include void main() int score, p; printf(“请输入考试成绩0100:”); scanf

14、(“%c”,改进程序2,11种情况,思考:不同case值时执行相同的操作,是否可以合并,第四章 选择结构程序设计,32,include void main() int score, p; printf(“请输入考试成绩0100:”); scanf(“%c”,改进程序3,注意:多个case共用一组执行语句时,共用的执行语句写在最后一个case的后面,第四章 选择结构程序设计,33,第四章 选择结构程序设计,例4.10,求方程 ax2+bx+c=0 的解。(自学,六、选择结构程序设计举例,34,第四章 选择结构程序设计,include #include void main() float a,b,

15、c,disc,x1,x2,p,q; scanf(%f%f%f,3 4 1 该方程有两个不等的实根: -0.3333 and -1.0000,4 3 1 该方程有两个复根: -0.3750 + 0.3307 i -0.3750 + 0.3307 i,例4.10,求方程 ax2+bx+c=0 的解。(各种形式,第一次运行,第二次运行,35,第四章 选择结构程序设计,例4.13,输入三角形的三边,判断能否构成三角形。如果能,说明所组成的三角形是等腰、等边、直角、等腰直角还是一般三角形。 (假定边长均为整数,include void main() int a,b,c; int f1=0,f2=0; printf(“输入三角形的三边:”); scanf(“%d%d%d”, if (a+bc&a+cb&b+ca) else printf(“不构成三角形!”);,输出“一般三角形,判断的顺序是否可以任意调整,if(a=b&a=c) printf(“等边三角形!”); else

温馨提示

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

评论

0/150

提交评论