5 分支结构.ppt_第1页
5 分支结构.ppt_第2页
5 分支结构.ppt_第3页
5 分支结构.ppt_第4页
5 分支结构.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、选择结构程序设计,1. if语句 2. switch语句 3. 选择结构程序设计举例,【问题】 1、从键盘输入一个数,如果该数为正,打印,否则不打印; 2、解一元二次方程,求出相应的实根或复根。,if 语句,1 简单if语句 一般格式:if(表达式) 语句体 【说明】 1)表达式:常量、变量、函数调用、表达式 2)表达式必须加()括起来。 3)语句体:一条 或 多条语句(多条语句用括起来) 4)执行过程: 当表达式的值为非0(真)时,执行语句体 5) 一个if语句总体上只算一条语句,例5.2输入任意三个数a、b、c,按从小到大的顺序排序输出。 分析: a b c 5 2 3 2 3 5 if

2、(ab) a和b交换,令 a=mina, b if (ac) a和c交换,令 a=mina, b, c if (bc) b和c交换,另b为次大值,c为最大值,if 语句,交换a和b的内容 5 t=a 5 a=b b=a,t 5,5 2,2,5,例5.2输入三个数a、b、c,按从小到大的顺序输出。 main() int a,b,c,t; printf(“input three numbers:n); scanf(%d,%d,%d, ,input three numbers: 11,22,18 11,18,22,if 语句,ifelse语句,1复合if语句的一般格式 if(表达式) 语句体1 el

3、se 语句体2 【说明】 (1)else必须与if配对使用,不能单独使用。 (2)if语句允许嵌套,但嵌套的层数不宜太多。 例如: if (ab) max=a; else max=b;,ifelse 的执行过程,程序1: if(x=0) if(x0) y=1; else y=0; else y=-1;,if语句嵌套时,else子句与 1.在它上面、 2.距它最近、 3. 尚未匹配 的if配对。,例5.3,程序2: if(x0) y=-1; else if(x=0) y=0; else y=1;,程序3: y=-1; if(x!=0) if(x0) y=1; else y=0;,程序4: y=0

4、; if(x=0) if(x0) y=1; else y=-1;,x=0时 ,x=-5 ,ifelse语句,ifelse if语句,1格式 if(表达式1) 语句组1 else if (表达式2) 语句组2 else if (表达式3) 语句组3 else if (表达式4) 语句组4 else if (表达式n) 语句组n else 语句组n+1,程序1: if(x=0) if(x0) y=1; else y=0; else y=-1;,例5.3,程序2: if(x0) y=-1; else if(x=0) y=0; else y=1;,ifelse if语句,课堂练习:if 语句应用实例,

5、分别用三种if语句编写程序:键盘输入x,输出y (1)简单if语句、 (2)ifelse语句、 (3)ifelse if语句分别实现。,算法一:用if语句实现,main() float x,y; printf(x=?); scanf(%f, ,算法二:用ifelse语句实现,main() float x,y; printf(x=?); scanf(%f, ,算法三:用ifelse if语句实现,main() float x,y; printf(x=?); scanf(%f, ,输入星期中的某一天,显示对应的英文,#include main() int i; printf(“Input 1- 7

6、: ”); scanf(“%d”, ,复杂!,switch语句,1一般形式 switch (条件表达式) case 常量表达式1:语句组1; case 常量表达式2:语句组2; . case 常量表达式:语句组n; default: 语句组n+1; ,2执行过程 (1)若 条件表达式=常量表达式i 则 执行语句组i 以及语句组i+1语句组n+1 (2)若 条件表达式 != 任何常量表达式 则 执行default 的语句组n+1,没有分号,没有分号,main() int i; printf( “Input 1- 7: ”); scanf(“%d”, ,输入星期中的某一天,显示对应的英文,brea

7、k; break; break; break; break; break;,运行结果 Input 1- 7: 4 Today is Thursday! Today is Friday! Today is Saturday! Today is Sunday!,break:跳出switch结构,空格,3说明 (1)条件表达式:常量表达式,int、char、枚举型 例: case 3+4:/* 正确*/ case x+y: /*错误 设int x=3,y=4;*/ (2)多个case子句,可共用同一语句(组)。 例如: case 10: case 9: printf(grade=An); break

8、; (3)default可以省略; (4)每个case后面的语句有多条语句时可以不加括起来。,switch语句,例:从键盘上输入一个百分制成绩score,输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,分析: switch结构, 如何分段? (score/10) - 0-10,选择结构程序设计举例,main() int score; printf(“Input a score(0100): ”); scanf(“%d”, ,选择结构程序设计举例,选择结构程序设计举例,例5.6 求一元二次

9、方程ax2+bx+c=0的解(a0)。 分析:disc=b2-4ac=0 x1=x2=-b/(2a) disc=b2-4ac0 x1=(-b+sqrt(disc)/(2a) x2=(-b-sqrt(disc)/(2a) disc=b2-4ac0 x1=(-b/(2a)+sqrt(disc)/(2a) i x2=(-b/(2a)-sqrt(disc)/(2a) i,输出 数值 数值 数值 数值+数值i,printf(“%f + %f i“, p, q);,#includemain() int a,b,c,disc; float x1,x2,p,q; scanf(“%d, %d,%d”, ,dis

10、c=b*b-4*a*c; if (disc=0) printf(“x1=x2=%fn”, -b/(2*a); else /* disc!=0*/ if (disc0) /* disc0*/ x1=(-b+sqrt(disc)/(2*a);/*两个不等实根*/ x2=(-b-sqrt(disc)/(2*a); printf(x1=%f, x2=%fn, x1, x2); else /* disc0*/ p=-b/(2*a); /*两个共轭复根*/ q=sqrt(fabs(disc)/(2*a); printf(“x1=%f + %f in“, p, q); printf(”x2=%f - %f

11、in“, p, q); ,选择结构程序设计举例,选择结构程序设计举例,例5.6 求一元二次方程ax2+bx+c=0的解(a0)。 分析:disc=b2-4ac=0 x1=x2=-b/(2a) disc=b2-4ac0 x1=(-b+sqrt(disc)/(2a) x2=(-b-sqrt(disc)/(2a) disc=b2-4ac0 x1=(-b/(2a)+sqrt(disc)/(2a) i x2=(-b/(2a)-sqrt(disc)/(2a) i,输出 数值 数值 数值 数值+数值i,#includemain() int a,b,c,disc; float x1,x2,p,q; scanf(“%d, %d,%d”, ,float,f,f,f,disc=b*b-4*a*c; /*float*/ if (disc=0) printf(“x1=x2=%fn”, -b/(2*a); else /* disc!=0*/ if (disc0) /* disc0*/ x1=(-b+sqrt(disc)/(2*a);/*两个不等实根*/ x2=(-b-sqrt(disc)/(2*a); printf(x1=%f, x2=%fn, x1, x2); else /* disc0*/ p=-b/(2*a); /*两个共轭复

温馨提示

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

评论

0/150

提交评论