深职院第3章选择结构教学.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2009-8-30 by 任卫国 C语言程序设计 第3章 选择结构 问题 每一场足球比赛开赛前如何决定场地和开球方? 两个数之间的关系有几种可能性? 你能否想象出求职时获得offer的条件? 请举出现实生活中判断与行动(或者条件与选择)的例子? 学习目标 学完这一章后,你应该: 认识c语言选择结构的语法格式; 会根据要求写出选择结构的判定条件; 认识关系表达式与逻辑表达式的构成; 会根据要求选用单分支或者双分支选择结构来写程序; 会进行多分支选择结构的程序设计; 会用流程图来描述选择结构 一、选择结构的判定条件 二、单分支与双分支选择结构 简单if语句(第47页) 问题3.4 应用场合:一件事,有条件地选择做,还是不做 ——双分支选择结构 If-else语句(第48页) 问题3.5 应用场合:两件事,有条件地二者择其一 ——条件运算 条件运算符与条件表达式 最简单的判断与选择 问题3.6 任务2——3个数中找最大数 算法选择 算法一:全排列法 3个数a,b,c按从大到小排列,有6种可能性 算法二:直接判断最大法 3个数a,b,c,3次判断确定最大数 算法三:逐一比较法 给max初值0或者a的值,然后max与三个数逐一比较 算法四:逐一比较法的简化 不引入变量max,直接用a保留最大值 任务2——3个数中找最大数 用if max=a; if(maxb) max=b; if(maxc) max=c; printf(max = %d\n,max); 条件表达式 max=a; max=max=b ? max : b; max=max=c ? max : c; printf(max = %d\n,max); 任务2——3个数中找最大数 任务2分析小结:一项任务的实现 算法不是唯一的 算法的实现方式不是唯一的 用你最有把握的算法与实现方式 或者,用最精妙的算法 要准确掌握if语句的格式和条件表达式的格式 三、多分支选择结构 嵌套if-else语句 问题3.7 问题3.8 应用场合:若干事情,有条件地选择其中之一去做 switch语句 问题3.9 问题3.10 多分支选择结构运用注意事项 多分支if的执行: 第1个条件为True的分支被执行,然后结束整个if语句,转去执行下一个if之后的下一个语句 如果所有的条件都不为True,执行最后一个else分支 如果所有的条件都不为True,而且不存在最有一个else分支,则转去执行下一个if之后的下一个语句 四、随机数 用途:程序设计时常用到随机数 应用举例:抽奖,随机抽取某一组学号,或者某个号码 ——随机数产生的通式: /*以下代码产生范围为从A到B-1之间的随机数*/ #include “stdlib.h” #include “time.h” #define A 10 #define B 100 void main( ){ int r; srand((unsigned)time( )); r=A+rand( )%(B-A); } 五、大括号与复合语句 大括号{与}的应用: 函数体的分界符 复合语句的分界符 复合语句:多个语句用大括号组合在一起 作为选择结构的一个分支 或者,作为循环结构中的循环体 小结:编程时要考虑分支可能情况 程序中的操作是有条件的还是无条件的? 有条件的操作涉及几种可能的选择? 如何设计选择的条件? 选用何种形式的if语句来实现程序分支? 何种场合下用switch语句比较方便? * * if (y%4==0 y%100!=0 || y%400==0) if(iX0) iY=-iX; 程序举例 ! || = = == != 运算符 逻辑运算符(第44页) 关系运算符(第43页) BACK 在高速路一出口处的判断: 如果 在此口出,请转左 在岔道口的选择:直行,转左 if (条件)语句 条件 语句 真 假 {printf(Please input an integer:); scanf(%d,iX); iY=iX; if(iX0) iY=-iX; printf(\n|%d|=%d,iX,iY); } if (条件) 语句1; else 语句2; 条件 真 假 语句2 语句1 { int iOnOff; printf(Please input 1 or an integer:); scanf(%d,iOnOff); if (iOnOff!=0) printf(\nThe light

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档