C语言C选择结构.ppt_第1页
C语言C选择结构.ppt_第2页
C语言C选择结构.ppt_第3页
C语言C选择结构.ppt_第4页
C语言C选择结构.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第五章 选择结构程序设计 P AB 真假 P BA 选择结构的流程图 本章主要内容 w第1节 逻辑量 w第2节 if w第3节 switch 第1节 逻辑量 .逻辑量的概念 w 某条件的结果用逻辑量表示。 w 条件的结果只有成立和不成立两种可能。 w 成立表示为(真);不成立表示为(假) 。 w 如:5,xc .逻辑量的c语言表示 1) 任意确定的值 如:,a, sqrt(3.0),a*b/c 什么时候是逻辑量?由其所参与运算的运算符及 其所在的位置有关。 2) 关系表达式 关系运算符 a) 种类:= != b) 类型:双目, 运算对象:数据 c) 结合方向:自左向右 d) 优先级别: = = != 优先级6(高) 优先级7(低) 关系表达式 a) 表达式结果:逻辑量。 b) 举例和注意事项 例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb a=cb=c 例 注意区分“=”与 “=” int a; a=1 ; a=1; 区分: a=3 3=a 例 应避免对实数作相等或不等的判 断 如 1.0/3.0*3.0=1.0 可改写为:fabs(1.0/3.0*3.0-1.0)bb=5; !a ab=2;c=3;d=4;m=1;n=1; (m=ab) k=(a+b?a:cd?c:d ab?a:(cd?c:d) w执行过程(表达式值expr2和 expr3中较高的类 型,2.4?4,4.5) w举例 expr1 取expr2值取expr3值 10 例 (a=b)? Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a if (xy) max = x; min = y; 若写为: if (xy) max = x; min = y; if(a+bc else x=-x; 是一条 语句 if (x) y=sin(x)+sqrt(x*x+1); else y=cos(x)x*x+3*x; 例 两数最大值.已知a,b,求max? 假定法: 1) 假定某一结论成立 2) 修订使之成立 1) 假定max最大,max=a;/*max=-32768*/*max=0*/ 2) 修订:若maxy) printf(“XYn“); else printf(“XY Enter integer x,y:12,12 X=Y Intput x,y x!=y xy xyxy x=y A B 上例中三分支问题,需要使用if的嵌套,多分支也一 样。具体的方法是:将其划分为两分支解决。 例 商场收款问题。根据m,计算factm? m=1000 15% 问题的实质是计算 discount? factm=m(1-discount) m=500 3 m=250 1 m=100 0 2 按照第3种划分方法,可得到流程图如下: d=10%d=15% Intput m m1 38 a 有,表示结 束switch语 句,五表示 继续执行下 一语句组 switch语句的 语句体,不是 复合语句 计算表达式 int1int2 default 语句组1 语句组2 语句组n+1 封口表示有break,不封口表示无break 形式: switch(表达式) case 整型常量表达式1:语句组1;break; case 整型常量表达式2:语句组2;break; case 整型常量表达式n:语句组n;break; default: 语句组n+1 2a+1 (1=1break; case 1:d=0.05;break; case 2: case 3:d=0.1;break; default:d=0.15; 例 商场收款问题。根据m,计算factm? m1000 15% c 0 1 default d=0d=5% 2 3 d=10% d=15% P (int)(m/25 0)=m/250 c=m/250-1 c=m/250 if(int)(m/250)=m/250) c=m/250-1; else c=m/250; switch(c) case 0:d=0;break; case 1:d=0.05;break; case 2: case 3:d=0.1;break; default:d=0.15; 例 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+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 运行结果:a=2,b=1 #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: prin

温馨提示

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

评论

0/150

提交评论