计算机C语言程序设计ppt,计算机C语言程序设计ch03分支程序设计上.ppt

253b171540df25e1b84436cbe50dfc72.gif计算机C语言程序设计ch03分支程序设计上.ppt

第三章 分支程序设计,双分支程序设计 单分支程序设计 关于if 布尔类型 bool 型 多分支程序设计 本章小结,作业 3.3 3.9 3.10 3.11 3.20 练习 3.1 3.2 3.4 3.5 3.6 3.7,3.1 判断成绩是否及格双分支程序设计,例3.1 输入某学生本学期程序设计课程成绩,判断并输出他是否及格,include define pass_mark 60 void mainvoid int mark; printf“pleace your mark“; scanf“d“, ,运行结果演示,这就是分支程序,分支程序有 单分支、双分支、多分支,本程序是双分支,PAD,流程图,其中 B是条件; S1 、S2 都是具体操作语句。,其含义是 首先计算条件B, 若B的值为true(真),则执行语句S1规定的操作, 然后跳过S2,执行后继操作; 否则B值为false(假),则跳过S1, 执行语句S2规定的操作,然后执行后继操作。,双分支结构,判断成绩是否及格的的程序用PAD表示,printf“pleace your mark“; scanf“d“用PAD表示,开始,结束,双分支if语句,形式 if B S1 else S2,例3.2 MAX函数,程序片段 if ab maxa ; else maxb ;,PAD,程序片段 maxa; ifmaxb maxb;,例3.3 sign符号函数,PAD,程序片段 if x0 sign1 ; else if x0 sign0 ; else sign -1 ;,3.2 成绩加上获奖信息单分支程序设计,例3.4程序设计课成绩可以根据是否在大奖赛上获奖而加5分。编程序,计算某同学的程序设计课成绩,include char win; int mark; void mainvoid printf“输入你的考试成绩“; scanf“d“, ,运行结果演示,本程序是单分支,语句形式 if B S,其中 B是条件; S是具体操作语句。,其含义是 首先计算条件B, 若B的值为true(真),则执行语句S规定的操作, 然后执行后继操作; 否则B值为false(假),则跳过S, 直接执行后继操作。,单分支结构,PAD,流程图,T,本题目PAD,开始,结束,例3.5 判断是否闰年,输入一个年份,判断该年是否闰年 闰年的条件 能被 4 整除,但不能被 100 整除 year40year1000 或 能被 400 整除 year4000 开始,结束,include char mark ; int year; void mainvoid printf“请输入年份“; scanf“d“, ,运行结果演示,例3.6 求一元二次方程根,ax2 bx c 0,a0一元二次方程 有实根0 两个不同的实根0 两个相同的实根0 有虚根0 a0,b0一元一次方程 a0, b0恒等式 c0恒等式成立 c0恒等式不成立读入 a,b,c,求解 x1, x2,输出 x1,x2,二次方程,一次方程,一次方程,常数等式,xc/b,否则,include include void main float a,b,c,delta; /*读入二次方程的3个系数*/ printf“ the three coefficients of the equationA,B,C “; scanf“fff“ifa0 deltab*b-4*a*c; ifdelta0 printf“x1g ,x2gn“, -bsqrtdelta/2*a,-b-sqrtdelta/2*a; else ifdelta0 printf“x1x2fn“,-b/2*a; else printf“x1ggi , x2g-gin“, -b/2*a,sqrt-delta/2*a, -b/2*a,sqrt-delta/2*a ; else 以下处理a0的情况 ifb0 printf“xgn“,-c/b; else ifc0 printf“00n“; else printf“g0n“,c; ,运行结果演示3.3 关于if,布尔表达式 可以嵌套 else归属问题,If 嵌套问题,嵌套 表达式B后及else后都可以是if语句 if B1 或 if B1 ifB2 S11 S21 else else ifB2 S22 S21 else else S12 S22 实现多分支结构,对多个条件判断,产生多个结果 else归属问题在嵌套结构中, C标准规定”else部分与前面最邻近的一个没有配对的 if 配对”,或if B1 ifB11 S11 else S12 else ifB21 S21 else S22,else归属问题,例如 if ab if bc x 0 ; else x 1 ; 若 ab 且 bb 且 bc 执行 x 1,if ab if bc x 0 ; else x 1 ; 若 ab 且 bb 且 bc 什么也不执行,if ab if bc x0; else x1;相当于 if ab if bc x 0 ; else x 1 ; ,if ab if bc x0; else x1;相当于 if ab if bc x 0 ; else x 1 ;,3.4 布尔类型bool,双分支,单分支逻辑 “条件B”,称为逻辑表达式,也称布尔表达式 该表达式类型为布尔类型bool bool类型 false(假)、 true(真) C中把bool类型看成整数类型分别用0 ,1 表示false 和 true,关系运算,关系运算 对两个值进行大小关系的比较,称为关系运算,产生 bool类型结果。 运算符有 (大于) (大于等于) (等于) (不等于) 运算分量操作数浮点类型、整数类型、char 类型、bool类型、枚举类型都属于简单类型,即值是可比的,3 3 得 true 3 3 得 false 5.5 得 false true false 得 false true true 得 true 判断两个浮点数是否相等 float x0.3,y1.0/3; fabsx-y1.0e-6,布尔运算,布尔运算逻辑运算在布尔类型上施加的运算 布尔运算符(非) (与) (或) 布尔表达式逻辑表达式表达式的结果是布尔类型3.5 获奖分等级多分支程序设计,例3.7 程序设计课的成绩根据大奖赛的成绩适度加分。加分规则 参赛者加5分 三等奖加15分 二等奖加20分 一等奖加30分 总分不超过100分 编程序,计算某同学的程序设计课成绩,未参赛,include int win; int mark; void mainvoid printf“输入你的考试成绩“; scanf“d“, ,运行结果演示,多分支结构switch e case C1 S1 break; case C2 S2 break ; . . . case Cn Sn break ; default S0 说明e整形表达式整形、字符 形、枚举形 c整形常量,注意break的重要性,执行过程是(语义是) 计算switch后表达式e的值 根据e值决定下一步操作 若在各常量表达式中,有某一个表达式的值等于e,则 执行该表达式后的语句及break语句 跳到 后结束switch语句执行 否则,若在诸表达式中没有一个值等于 e 值,则 若该switch语句含有default省缺标号 执行省缺标号default后的语句 跳到 后结束switch语句执行 若该switch语句不含default省缺标号,则 跳到 后,结束switch语句执行 switch语句的说明 case后的常量表达式不能重名 case和default不改变控制流程 多个case可共用一组执行语句 switch语句可以嵌套,switch e case C1 S1 case C2 S2 . . . case Cn Sn default S0 ,执行过程是(语义是) 计算switch后表达式e的值 根据e值决定下一步操作 若在各常量表达式中,有某一个表达式的值等于e,则 则执行列在该表达式后的语句;然后顺序执行该语句后面的所有语句,直到 “ ”为止 ,该switch语句执行结束。向下执行swich语句的后继语句; 否则,若在诸表达式中没有一个值等于 e 值 若该switch语句含有default省缺标号 执行省缺标号default后的语句,直到 “ ”为止 ,结束switch语句执行 若该switch语句不含default省缺标号,则 跳到 后,结束switch语句执行,例3.8 高速公路收费,高速公路每公里的收费标准按不同种类汽车如下 小汽车( car ) 0.50 元 卡车( truck ) 1.00 元 大客车( bus ) 1.50 元 编程序,为某高速公路收费站计算各种车辆的收费额。,include “stdio.h“ int sort ; 车种说明 float mileage, price ; 里程、费用 void main 输入车种 printf “please choose 1.car 2.truck 3.bus ” ; scanf “d”, 输出 ,include “stdio.h“ enum tsort car , truck , bus sort ; 车种说明 int i ; float mileage, price ; 里程、费用 void main 输入车种 printf “please choose 1.car 2.truck 3.bus “ ; scanf “d“, 输出 ,运行结果演示,例3.9 模拟单步计算器,设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算,include “stdio.h“ void main float a,b; char w; printf“pleace ee” scanf“f“, ,运行结果演示本章小结,逻辑值控制 单分支 双分支 布尔运算 关系运算 算术值控制 多分支结构一 多分支结构二,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值