计算机C语言第四章.ppt_第1页
计算机C语言第四章.ppt_第2页
计算机C语言第四章.ppt_第3页
计算机C语言第四章.ppt_第4页
计算机C语言第四章.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第四章 选择结构程序设计 4.1 条件判断 一.条件判断的含义 条件判断的结果是一个逻辑值:“是”或“否” 二.关系运算符和关系表达式 1.关系运算符及其优先次序 优先级相同(高) (小于) (小于或等于) (大于) (大于或等于) (等于) ! (不等于) 、=、优先级相同 = =、!=优先级相同 高 于 与其它运算符优先级的比较: 算术运算符 例如: c=da+b 等效于:c=(d(a+b) 关系运算符 结合性:自左向右 赋值运算符 高 低 用关系运算符将两个表达式连接起来的式子。 如:(ab)(by 、s+fd 2.关系表达式 关系表达式的值 运算结果逻辑值 1“真” ,0“假” 例如: 设 a=3, b=2, c=1 求下面关系表达式 的值: cb (a-b) = = 1 b+c100 printf(“the max is %f”,y); 例2:任意输入三个数,按从大到小的顺序输出。 #include “stdio.h” main() float x,y,z,t; scanf(“%f%f%f”, if(x=85) level=A; else if (grade=70) level=B; else if (grade=60) level=C; else level=D; printf(“your level is%c”,level); if 语句说明: if (x=0) printf(“X is positive.”); x+; else printf(“X is negative.”); if (x=0) printf(“X is positive.”); x+; else printf(“X is negative.”); 2、if 语句中的“语句”为一个 简单语句或复合语句 1、if后面的表达式一般为逻辑 表达式或关系表达式,也可以 是任意数值类型表达式。 if(3) printf(“ok!”); 二、使用嵌套的if 语句实现多层判断 在 if 语句中又包含一个或多个if 语句称为 if 语句的嵌套。 一般形式: if (条件1) if (条件2)语句1 else 语句2 else if (条件3)语句3 else 语句4 内嵌if 内嵌if if(x0) if(y0) printf(“x0,y0“); else printf(“x0,y0) printf(“x0“); else printf(“x6) if (n6) if (n main() int x; scanf(“%d”, if (x0) printf(“X is positive.”); x=x+1; else printf (“X is negative.”); 缩进 缩进 缩进 三、用if 语句实现选择结构举例 -1 ;x0 main( ) int x,y; scanf(“%d“, if(x=3000) c=12; else c= s / 250; /* 按250分类 */ switch( c ) case 0: d=0 ; break ; /* s=3000) d=15; else if (s=2000) d=10; else if (s=1000) d=8; else if (s=500) d=5; else if (s=250) d=2; else d=0; f=p*w*s*(1-d/100.0) ; printf(“freight=%15.4f ”, f ) ; 例5.6 求 ax2+bx+c=0 方程的解 1、a=0 ,方程不是二次方程 2、b2-4ac=0, 有两个相等的实根 3、b2-4ac0, 有两个不相等的实根 4、b2-4ac main() else if( disc1e-6) float a,b,c,d,disc,x1,x2,realpart,imapart; x1=(-b+sqrt(disc)/(2*a); scanf(“%f,%f,%f”, x2=(-b-sqrt(disc)/(2*a); printf(“The equation ”); if(fabs(a) main() long int num; int n1,n2,n3,n4,n5,bits; scanf(“%ld”, if (num9999) bits=5 else if (num999) bits=4; else if(num99) bits=3; else if(num9) bits=2; else bits=1; printf(“bits=%dn”,bits); n5=num/10000; n4= (int)(num-n5*10000)/1000; n3=(int)(num- n5*10000- n4*1000)/100; n2=(int)(num- n5*10000- n4*1000- n3*100)/10; n1=(int)(num-n5*10000-n4*1000-n3*100- n2*10); switch(bits) case 5:printf(“Every bit is:%d,%d,%d,%d,%dn”, n5,n4,n3,n2,n1); printf(“Reverse is: %d,%d,%d,%d,%dn”, n1,n2,n3,n4, n5); break; case 4: printf(“Every bit is: %d,%d,%d,%dn”, n4,n3,n2,n1); printf(“Reverse is: %d,%d,%d,%dn”, n1,n2,n3,n4); break; case 3: printf(“Every bit is: %d,%d,%dn”, n3,n2,n1); printf(“Reverse is: %d,%d,%dn”, n1,n2,n3); break; case 2: printf(“Every bit is: %d,%dn”, n2,n1); printf(“Reverse is:%d,%dn”, n1,n2); break; case1: printf(“Bit is: %dn”, n1); printf(“Reverse is: %dn”, n1); 运行情况 : 12345Input bits=5 Every bit is: 1,2,3,4,5 Reverse is: 5,4,3,2,1 Output 4.5 条件运算符和条件表达式 例题1: main() int a=3,b=2,max; max= (ab) ? a : b ; printf(“%d”,max); 表达式1 ? 表达式2表达式3 如: (ab) ? a : b if (ab) max=a; else max=b; 目的简化 if 语句。 等效于 条件运算符的结合方向: 自右至左 如:ab ? a : cd ? c : d 等效于:ab ? a

温馨提示

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

评论

0/150

提交评论