选择结构程序设计_第1页
选择结构程序设计_第2页
选择结构程序设计_第3页
选择结构程序设计_第4页
选择结构程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、,王小琼 信息科技学院,C语言程序设计,第五章 选择结构程序设计,选择结构三种基本结构之一,5.1关系表达式与逻辑表达式,关系运算符 = b ),结果为 1,例子,Ex3 a=4 求(!a),4非0 即为真(1) !4 即对真取反 结果为 0,c=a else y = x; else y = x - 1;,嵌套的 if 语句的配对 else 总是和在它前面 离它最近 尚未配对的那个if 配对,最好的办法为加大括号 , 嵌套的if语句的配对 else总是和在它前面 离它最近 尚未配对的那个if 配对,二 if语句的嵌套,if(x=0) if(x0) y=x+1; else y=x; else y

2、=x-1;,解法3,y=x; if(x!=0) if(x0) y=x+1; else y=x-1;,程序举例,设变量x=10.2,y=20.5,编程实现两个变量的值互换,#include main() float x, y, t; scanf( %f%f, ,t = x; x = y; y = t;,算法:1 定义变量,输入三个数a、b、c,#include main() ,if ( a b ) t = a; a = b; b = t; if ( a c ) t = a; a = c; c = t; if ( b c ) t = b; b = c; c = t; ,2 对a、b、c从大到小排序

3、 将a、b进行比较,大数存入a,小数存入b 将a、c进行比较,大数存入a,小数存入c(此时a为最大数) 将b、c进行比较,大数存入b,小数存入c(b比c大,从大到小排序为a、b、c),Ex302 输入三个数,从大到小排序后输出,复合语句:用 括起来 的几个语句,在语法上作为一个语句使用。,printf( %f %f %fn, a, b, c );,float a, b, c, t; printf( Input a,b,c:“ ); scanf( %f ,%f, %f, ,3 输出从大到小排序后数a、b、c,三 条件运算符(三目运算符),Ex 设a=4,b=3,c=2,执行下面的if语句后,c=

4、? if(ab) if(b0) c=0; else c+;, 如何改变嵌套的if语句的配对 加语句括弧 if(ab) if(b0) c=0; else c+; 用if语句的第种形式 if(ab) printf(%dn,a); else printf(%dn,b);,e1?e2:e3,e1、e2和e3是三个表达式。若e1的值为真(非0), 则表达式的值为e2,否则表达式的值为e3,形式: switch(整型表达式) case 常量表达式1: 语句1; case 常量表达式2: 语句2; case 常量表达式n: 语句n; default: 语句n+1; ,5.4 switch语句,Ex0308

5、输入一个字符,判别是否大写字母,如果是将它转换成小写字 母,否则不转换,然后输出最后的得到的字符,#include void main() char ch; scanf(%c, ,例如:根据考试成绩的等级,打印出评语。 switch ( grade ) case A : printf ( “优” ) ; break ; case B : printf ( “良” ) ; break ; case C : printf ( “中” ) ; break ; case D : printf ( “及格” ) ; break ; case E : printf ( “不及格” ); break ; d

6、efault : printf ( “errorn” ) ; ,结果为:? 若grade为A,则输出为:,优,优良中及格不及格error,Ex 设x=1,a=0,b=0 switch( x ) case 0 : b+; case 1 : a+; case 2 : a+; b+; ,1,() switch后的表达式类型C的新标准允许所有类型。 ()常量表达式 n的值必须互不相同。 ()break语句用于跳出switch。在case后的语句都有break的情况下,case的出现次序不影响执行结果。 ()若没有break语句则执行结果不同。 例如,若去掉上面例子中的5个break语句,程序执行时输入

7、A,则输出结果为: 优良中及格不及格error,注意:,举例,Ex308 用switch语句解Ex307,#include main() int x; printf(Please input x(0=x=100)n); scanf(%d, ,分析程序的输出并修改程序,Ex0309,输入某学生的成绩,输出该学生的成绩和等级。 A级:80100;B级:7080;C级:6070;D级:0 有两个不等实根 4 d0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); 输出两个不相等的实根x1,x2; else 根的实部rp=-b/(2*a); 根的虚部ip=sqrt(-d)/(2*a); 输出两个共轭复根; ,算法,讨论,程序,#include #include main(

温馨提示

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

评论

0/150

提交评论