




已阅读5页,还剩97页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
选择结构编程,4.1选择结构和条件判断4.2使用if语句实现选择结构4.3关系运算符和关系表达式4.4逻辑运算符和逻辑表达式4.5条件运算符和条件表达式的嵌套4.6选择结构4.7使用开关语句实现多分支选择结构4.8选择结构程序综合示例,4.1选择结构和条件判断。在序列结构中,每条语句从上到下执行,下一条语句在最后一条语句执行后自动执行,这是无条件的,不需要判断。在现实生活中,有许多情况需要判断和选择。如果你在家,我会拜访你(需要判断你是否在家)。如果你考试不及格,你必须弥补(需要判断你是否通过考试)。如果遇到红灯,你必须停下来等待(需要判断是否是红灯)。周末,我们将为70岁以上的老人去远足(需要判断是否是周末)。公园的门票是免费的(需要判断你是否超过70岁)。4.1选择判断的结构和条件。在现实生活中,有许多情况需要判断和选择来处理这些问题。关键在于有条件的判断。由于程序处理问题的需要,大多数程序将包括选择结构。在进行下一步操作之前,有必要进行有条件的判断。4.1选择结构和条件判断。C语言有两种选择语句:(1)if语句,实现两个分支的选择结构;(2)switch语句,实现多个分支的选择结构;4.1选择结构和条件判断;示例4.1在示例3.5的基础上对程序进行了改进。主题要求是找到方程的根。用键盘输入a,b,c。假设a、b和c的值是任意的,没有保证。它需要在程序中进行判断。如果是,则计算并输出方程的两个实根,否则输出“方程没有实根”的信息。我不确定我是否会成为一个,b,c来做这件事。/disc是判别式sqrt(b * b-4 * a * c)scanf( % lf % lf % lf ,当b2-4ac被计算时,disc的值变为-15。修饰符l应该加在格式化程序f之前,这意味着“长浮点类型”,即双精度类型。if(disc 0)printf( hasnotreallroot n );否则 p=-b/(2.0 * a);q=sqrt(圆盘)/(2.0 * a);x1=p q;x2=p-q;printf(“real roots 3360 nx1=% 7.2f nx2=% 7.2f n”,x1,x2);返回0;,-150为真,# include # include # include int main() double a,b,c,disc,x1,x2,p,q;Scanf(%lf%lf%lf ,计算的b2-4ac,光盘值更改为8,if(disc 0)printf(“hasnotreallrooms n”);否则 p=-b/(2.0 * a);q=sqrt(圆盘)/(2.0 * a);x1=p q;x2=p-q;printf(“real roots 3360 nx1=% 7.2f nx2=% 7.2f n”,x1,x2);返回0;,80为假,p的值变为-1,q的值变为0.71,x1的值变为-0.29,x2的值变为-1.71,如果(disc 0)printf(“hasnotreallooms n”);否则 p=-b/(2.0 * a);q=sqrt(圆盘)/(2.0 * a);x1=p q;x2=p-q;printf(“real roots 3360 nx1=% 7.2f nx2=% 7.2f n”,x1,x2);返回0;,选择一个用if语句实现的结构,if (DISCB,# INCLUDE INT MAIN() flove,b,t;Scanf(%f,%f ,选择一个结构并用if语句实现它。在if语句被处理后,变量a是十进制的,变量b是大的。例如4.3,输入3个数字a、b和c,并按降序输出。如果你想这样做,你可以先用伪代码写算法:ifab,a和b交换(a是a和b中较小的一个),ifac,a和c交换(a是三个中最小的一个),ifbc,b和c交换(b是三个中较小的一个)和输出a,b,c,# include int main() flove,b,c,t;Scanf(%f,%f,%f ,if ab,swap a和b,a是a和b中较小的一个,# include in main() flove,b,c,t。Scanf(%f,%f,%f ,if ac,swap a和c,a是三者中较小的一个,# include in main() flove,b,c,t;Scanf(%f,%f,%f ,if bc,exchange b和c,b是三者中的较小者,4.2.2if语句的一般形式,if (expression)语句1else语句2,关系表达式的逻辑表达式数值表达式,方括号中的部分是可选的,4.2.2if语句的一般形式,if (expression)语句1else语句2,Simple语句复合语句,另一个if语句,等等。最常用的三种if语句形式是:1.if (expression)语句1(不带else子句)2.if (expression)语句1else语句2(带else子句)3.if (expression 1)语句1 else if (expression 2)语句2 else if (expression 3)语句3 else if (expression m)语句m else语句m 1(在else部分嵌套了多层if语句),if(number500)开销=0.15;elseif(数字300)成本=0.10;elseif(数字100)成本=0.075;elseif(数字50)成本=0.05;else cost=0;如果(数字500)成本=0.15;elseif(数字300)成本=0.10;elseif(数字100)成本=0.075;elseif(数字50)成本=0.05;else cost=0;(1)整个if语句可以写在多行或一行上,但它是一个整体,属于同一语句。为了程序的清晰,建议以之字形书写。(2)“报表1”.“语句M”是if或if语句(3)“语句1”中的嵌入语句.语句M”可以是简单语句或复合语句(4)。注意,else子句不能单独用作语句;它必须是if语句的一部分,并与if成对使用。(5)在if语句中,检查给定条件以确定给定条件是否为真。4.3关系运算符和关系表达式,4.3.1关系运算符及其优先级4.3.2关系表达式,4.3.1关系运算符及其优先级,关系运算符:用于比较两个值以确定比较结果是否满足给定条件的比较运算符。语言c提供了六个关系运算符:(小于) (大于) =(大于或等于)=(等于)!=(不等于),相同优先级(高),相同优先级(低),4.3.1关系运算符及其优先级,关系运算符、算术运算符和赋值运算符的优先级,4.3.1关系运算符及其优先级,ca b相当于c(a b)ab=c相当于(ab)=ca=bc相当于a=(bc),4.3.2关系表达式,关系表达式使用关系运算符连接两个数值或数值表达式的子关系表达式的值是逻辑值,即“真”或“假”。在C的逻辑运算中,“1”表示“真”,而“0”表示“假”,4.4逻辑运算符和逻辑表达式,4.4.1逻辑运算符及其优先级4.4.2逻辑表达式4.4.3逻辑变量,4.4.1逻辑运算符及其优先级,以及3个逻辑运算符:else max=b;max=(ab)?a:b条件运算符、4.5条件运算符和条件表达式都有一个if语句。当被判别的表达式的值为“真”或“假”时,执行赋值语句,并对同一变量进行赋值,例如if(ab)max=a;elsemax=b。max=(ab)?a:b、条件表达式、4.5条件运算符和条件表达式。条件表达式的一般形式是表达式1?表达式3需要三个操作数,称为三进制运算符,这是C语言中唯一的三进制运算符。表达式2和3不仅可以是数值表达式,还可以是赋值表达式或函数表达式、4.5条件运算符和条件表达式。条件运算符的执行顺序:如果解表达式1不为0 (true),则解表达式2将作为整个条件表达式的值。如果表达式1的值为0(假),则采用解表达式3,表达式3的值为整个条件表达式的值,4.5条件运算符和条件表达式。条件运算符优先于赋值运算符。条件运算符的组合方向是“从右向左”。以下是合法的用法:ab?(max=a):(max=b);ab?printf(%d ,a):printf(%d ,b);4.5条件运算符和条件表达式,示例4.4输入一个字符以确定其是否为大写,如果是,将其转换为小写。如果没有,不要转换。然后输出最后一个字符。4.5条件运算符和条件表达式,解决问题的思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换,4.5条件运算符和条件表达式,# includeintmain() charch;Scanf (%c ,4.5条件运算符和条件表达式,程序分析:条件表达式(ch= a scanf (%c ,值为a,# include in main() charg rade;Scanf(%c ,不能小于,# including min() charg rade;Scanf(%c ,值为c,# includeeintermain() charg rade;Scanf(%c ,值为f,# includeintermain() charg rade;Scanf(%c ,此行的位置有问题,应该如何修改?switch语句的功能是使进程根据表达式的值跳转到不同的语句。请注意,在每个案例后面的语句中,末尾都有一个break语句。它的功能是使进程跳到switch语句的末尾。switch语句的一般形式:switch(表达式) case constant 1:statement 1 base constant 2:statement 2case constant n:statement ndefault : statement n 1 ,integer type(包括字符类型),switch语句根据表达式的值使用。将过程切换到不同的语句:Switch(expression) case constant 1:statement 1 base constant 2:statement 2case constant n:statement ndefault : statement n 1 ,不能相同,scanf (%c , expression),scanf (%c , expression),scanf (%c , expression),switch语句,复合语句可以放在switch下面的花括号中。这个复合语句包括几个语句,它们是switch语句的主体。大小写后跟一个常量,如:大小写“A”A,它和默认值都用作标记位置的标签。每个案例标签出现的顺序不影响执行结果。示例4.7编写一个程序来处理带有switch语句的菜单命令。解决方案:在许多应用中,菜单用于控制过程。例如,如果您从键盘输入一个“A”或“A”字符,您将执行A操作,如果您输入一个“B”或“B”字符,您将执行B操作,等等。,# includeintmain() vouriaction 1(int,int),action2(int,int);charchinta=15,b=23ch=getchar();开关(ch) casea : case A : action 1(a,b);休息;case b : case B : action 2(a,b);休息;default : putchar( a );返回0;,输入a或a,调用action1函数,执行action1 (intx,inty) printf (x y=% d n ,x y);,# includeintmain() vouriaction 1(int,int),action2(int,int);charchinta=15,b=23ch=getchar();开关(ch) casea : case A : action 1(a,b);休息;case b : case B : action 2(a,b);休息;default : putchar( a );返回0;,输入b或b,调用action2函数,执行b操作,void action2 (intx,inty) printf (x * y=% d n ,x * y);,# includeintmain() vouriaction 1(int,int),action2(int,int);charchinta=15,b=23ch=getchar();开关(ch) casea : case A : action 1(a,b);休息;case b : case B : action 2(a,b);休息;default : putchar( a );返回0;输入其他字符并给出警告。这是一个非常简单的示意程序。在实际应用中,指定的操作可能更复杂:a:输入b班所有班级学生的分数:计算并输出所有班级学生的平均分数c:计算并输出所有班级的平均分数d:将所有班级的平均分数从高到低排序并输出可根据上述思想编写的程序,并将动作函数设计成不同的函数来实现各种要求, 4.8选择结构程序为综合例题,4.8编写程序判断一年问题的解决思路:判断闰年的方法已经介绍得比较早了。 本示例使用不同的方法编写程序,4.8选择结构程序给出一个综合示例,并使用变量LEAP表示闰年是否存在的信息。如果闰年,使LEAP=1;闰年=0表示非闰年。最后,确定leap是否为1(真)。如果是,则输出“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备采购供应与安装调试协议书
- 生活服务信息平台合作协议
- 农村生态农业观光旅游合作协议书
- 软件行业软件开发流程优化与项目管理策略方案
- 工作特别声明及用途证明(7篇)
- 建筑行业职业规划试题及答案
- 2025年公务写作新技能试题及答案
- 2025关于办公设备订购合同
- 2025计算机设备租赁合同样本
- 行政管理与市政学考点试题及答案
- 2024年度卫浴企业数字化转型战略咨询合同3篇
- 中国食物成分表2020年权威完整改进版
- 2024年山东省聊城市中考英语真题含解析
- 北京中考英语5年真题汇编-教师版-专题01 单项选择
- 【MOOC】大学体育-华中科技大学 中国大学慕课MOOC答案
- 空气能合同模板
- 2024年空间设计行业 AI应用调研报告
- 【MOOC】茶叶感官审评-安徽农业大学 中国大学慕课MOOC答案
- 《氢科学技术应用》课件-3-1 氢气的储存
- 智能家居系统设计方案四篇
- 《顶岗实习答辩》课件
评论
0/150
提交评论