第4章分支结构程序设计_第1页
第4章分支结构程序设计_第2页
第4章分支结构程序设计_第3页
第4章分支结构程序设计_第4页
第4章分支结构程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章 分支结构程序设计分支结构程序设计4.1 程序的逻辑结构程序的逻辑结构4.2 if语句语句4.3 switch语句语句4.4 goto语句语句4.5 分支结构应用举例分支结构应用举例第四章第四章 选择结构选择结构4.1 程序的逻辑结构程序的逻辑结构结构化程序设计的三种基本结构结构化程序设计的三种基本结构S1S21. 顺序结构顺序结构条件条件S1S2TF2. 选择结构选择结构条件条件STF3. 循环结构循环结构 (1)输入一个学生两门课的成绩。输入一个学生两门课的成绩。(2)计算平均成绩。计算平均成绩。(3)输出平均成绩。输出平均成绩。 问题问题1:输入一个学生两门课的成绩,计算出平

2、均成绩输入一个学生两门课的成绩,计算出平均成绩 (1)输入一个学生两门课的成绩。输入一个学生两门课的成绩。(2)计算平均成绩。计算平均成绩。(3)输出平均成绩。输出平均成绩。(4)平均成绩平均成绩90 问题问题2:输入一个学生两门课的成绩,若平均成绩不低于输入一个学生两门课的成绩,若平均成绩不低于90 分,则显示分,则显示“优等生优等生”,否则显示,否则显示“要加油啊!要加油啊!”成立,输出成立,输出“优等生优等生”不成立,输出不成立,输出“要加油啊要加油啊” (1)输入一个学生两门课的成绩。输入一个学生两门课的成绩。(2)计算平均成绩。计算平均成绩。(3)输出平均成绩。输出平均成绩。(4)平

3、均成绩平均成绩90,成立,计数,成立,计数 问题问题3:按照问题按照问题2的标准,统计全班的优等生人数的标准,统计全班的优等生人数确定人数,需要定义两个变量,一个存放人数,一个计数确定人数,需要定义两个变量,一个存放人数,一个计数重复以上步骤重复以上步骤4.2 if语句语句uif 二分支二分支uif 多分支(多分支(if-else if-else)uif 嵌套嵌套ifif-elseif语句语句1、if 语句的二分支结构语句的二分支结构 (1)例如:例如:if (xy) printf ( %d, x);if(表达式)语句;(表达式)语句;例例 : 求两个整数的最大数求两个整数的最大数 思路思路:

4、 a.设两个数为设两个数为x,y b.设设x是大数是大数,用用max表示大数表示大数 c.判断判断maxy是否成立是否成立 d.输出输出max的值的值#include main() int x,y,max;printf(“intput x,y”);scanf(“%d%d”,&x,&y); max=x; if(maxy) printf (%d, x); else printf (%d, y); if(表达式)语句(表达式)语句1; else 语句语句2;例例 :输入一个学生两门课的成绩,若平均成绩不低于输入一个学生两门课的成绩,若平均成绩不低于90 分,则显示分,则显示“优等生优

5、等生”,否则显示,否则显示“要加油啊!要加油啊!”思路思路: a.输入一个学生两门课的成绩输入一个学生两门课的成绩 b.计算平均成绩计算平均成绩 c.平均成绩平均成绩90 成立,输出成立,输出“优等生优等生”不成立,输出不成立,输出“要加油啊要加油啊”#include main() int a1,a2,avg;printf(“intput a1,a2”);scanf(“%d%d”,&a1,&a2); avg=(a1+a2)/2; if(avg=90) printf(“优等生优等生n”); else printf(“要加油啊要加油啊n”);2、if 语句的多分支结构语句的多分支结

6、构if (表达式(表达式1)语句)语句1;else if (表达式(表达式2)语句)语句2;else if (表达式(表达式3)语句)语句3; else if (表达式(表达式m)语句)语句m;else 语句语句n;说明:说明:a.if后面的后面的“表达式表达式”,一般为逻辑表达式或关系表达,一般为逻辑表达式或关系表达式式 或或数值表达式,且必须加小括号。数值表达式,且必须加小括号。表达式的值为表达式的值为0, 按按“假假”处理;为非处理;为非0,按,按“真真”处理。处理。例如:例如:if (a=b&x=y) printf(a=b,x=y);比较比较 if(x=0) 与与if(x=0)

7、例如:例如:if (3) printf (OK) ;b. 分号的位置。分号的位置。c. else 必须和必须和 if 配对使用。配对使用。例如:例如:if (x0)print(%f,x) ;elseprint(%f,-x) ;d. 在在if 和和 else后面可以含一个复合语句。后面可以含一个复合语句。 if (x0) y=6; printf(%f%d,x,y) ;else print(%f,-x); if (ab) t=a;a=b;b=t; printf(%5.2f,%5.2fn,a,b);if (ab) t=a;a=b;b=t; printf(%5.2f,%5.2fn,a,b);if (a

8、b) t=a,a=b,b=t; printf(%5.2f,%5.2fn,a,b);对对例例:按从小到大的顺序输出变量的值按从小到大的顺序输出变量的值,判断下面程序的正确性判断下面程序的正确性 对对3、if语句的嵌套语句的嵌套if (表达式表达式1)if (表达式表达式2) 语句语句else语句语句 elseif (表达式表达式3)语句语句else 语句语句内嵌内嵌if内嵌内嵌if说明:说明:else总是与它上面的最近的且不带总是与它上面的最近的且不带else 的的if 配对配对,而而与书写无关与书写无关例:有一函数例:有一函数-1(x0)编一程序,输入一个编一程序,输入一个x值,输出值,输出y

9、值。值。例例:计算下面分段函数的值计算下面分段函数的值main()int x,y; scanf(%d,&x); if (x0) y=-1; else if(x=0) y=0; else y=1; printf(x=%d,y=%dn,x,y); switch(表达式)(表达式)case 常量表达式常量表达式1:语句:语句1; case 常量表达式常量表达式2:语句:语句2; case 常量表达式常量表达式n:语句:语句n; default: 语句语句n+1;4.3 switch语句语句1.一般形式一般形式必须是必须是整形表达式整形表达式可以省略可以省略 功能功能:先计算表达式值先计算表达

10、式值,再依次与常量表达式进行比较再依次与常量表达式进行比较,若匹配若匹配 成功成功,就从该就从该case开始顺序开始顺序执行各个语句执行各个语句,直到直到swith结束。结束。 如果都不匹配就执行如果都不匹配就执行default中的语句序列。中的语句序列。main() int a=10;switch(a) case 9: a+=1; case 10: a+=1; case 11: a+=1; case 12: a+=1; printf(“a=%dn”,a); 运行结果:运行结果:a=13例例 : 执行该程序后执行该程序后, a=? 2. break语句语句 格式格式: break;功能功能:

11、中断中断switch语句的执行语句的执行,转去执行转去执行switch语句外语句外 的第一条语句的第一条语句.int a=10;switch(a) case 9: a+=1; break; case 10: a+=1; break; case 11: a+=1; break; case 12: a+=1; printf(“a=%dn”,a); 例例 : 执行该程序后执行该程序后, a=? 运行结果:运行结果:a=11 3. switch语句的使用说明语句的使用说明 (1)每个每个case与与case中的常量间必需有空格且值应不同。中的常量间必需有空格且值应不同。(2)如果每个如果每个case中

12、都有中都有break语句语句,则运行结果与则运行结果与case和和default的排列次序无关。的排列次序无关。(3)允许多个允许多个case共用一个语句序列。共用一个语句序列。(4)switch语句的每个语句的每个case中也可以嵌套另一个中也可以嵌套另一个 switch语语句句. int a=10;switch(a) case 9: a+=1; case 10: a+=2; case 11: a+=3; case 12: a+=4; printf(“a=%dn”,a); int a=10;switch(a) case 9: a+=1; case 12: a+=4; case 11: a+=

13、3; case 10: a+=2; printf(“a=%dn”,a); 运行结果:运行结果:a=19运行结果:运行结果:a=12 int a=15;switch(a) case 9: a+=1; break; case 10: a+=2; break; case 11: a+=3; break; case 12: a+=4; break; default: a+=10; break; printf(“a=%dn”,a); 运行结果:运行结果:a=25 int a=9;switch(a) case 9: case 10: case 11: a+=3; break; case 12: a+=4;

14、 break; printf(“a=%dn”,a); 运行结果:运行结果:a=12 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+;break; printf(a=%d,b=%dn,a,b);运行结果:运行结果:a=2 b=14.4 goto语句(自学程序中出现能看懂)语句(自学程序中出现能看懂)4.4 分支结构应用举例分支结构应用举例例例 : 学生有数学、英语两门课程,按百分制考核。要学生有数学、英语两门课程,按百分制考核。要 求输入各门课程成绩,按平均成绩分等显示:求输入各门课程成绩,按平均成绩分等显示: 优秀:平均成绩优秀:平均成绩90 良好:良好: 80平均成绩平均成绩90 中等中等: 70平均成绩平均成绩80 及格及格: 60平均成绩平均成绩70 不及格不及格:平均成绩平均成绩60#include main() int a,b,avg;p

温馨提示

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

评论

0/150

提交评论