C语言第4章选择4.3-4.4.ppt_第1页
C语言第4章选择4.3-4.4.ppt_第2页
C语言第4章选择4.3-4.4.ppt_第3页
C语言第4章选择4.3-4.4.ppt_第4页
C语言第4章选择4.3-4.4.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、条件语句的三种格式?,(1) if (表达式) 语句 (2) if(表达式) 语句1 else 语句2 (3) if(表达式) 语句 else if(表达式) 语句 else if (表达式)语句 else if(表达式)语句 else 语句n,复习提问,思考,#define GOAL 7 main() int num; printf(please input a number(1-10):); scanf(%d, ,1、分析下列程序,说出程序运行结果,若运行程序后输入3则输出什么? 若运行程序后输入7则输出什么?,Too small! You are good!,2. 当a,b,c的值分别为

2、3,4,5时,以下各语句执行后a,b,c的值为多少? (1)if(ac) a=b;b=c;c=a; else a=c;c=b;b=a; 执行后a,b,c的值为_,_,_,思考,5,5,4,3、从键盘输入一个学生的成绩,然后输出他对应的等级。,小于60分,E级; 小于70分,D级; 小于80分,C级; 小于90分,B级; 小于等于100分,A级;,#include Void main() float score; char grade; scanf(“%f”, printf (“grade is %c”,grade); ,if语句与条件运算符,if ( y0 )x=-y; elsex=y;,(y

3、0)?(x=-y):(x=y);,等价,等价,x = (y0) ? -y:y;,说明: if else可以完成与条件运算符( ? : )完全相同的任务,并且可以进行相应的转换。,格式:表达式 ?表达式:表达式 功能:判断表达式的值,该值为“非”, 则取表达式2的 值, 为“ 0 ”时,取表达式的值。,#include main() int a,b,max; printf(Enter a and b:n); scanf(%d%d, ,练习: 求a和b中较大的一个,运行:Enter a and b: 80 35 max=80,max=ab? a:b;,4.3 用switch语句实现多分支选择结构,

4、实际问题:常常需要用到多分支的选择,例如,学生成绩的优、良、中、差;人口统计分类老、中、青、少、儿童等 。,switch语句的一般形式:,switch (表达式) case 常量表达式: 语句 case 常量表达式: 语句 case 常量表达式: 语句 default: 语句 ,例:要求按照考试成绩的等级输出百分制分数段,用switch语句实现: switch(grade) case A: printf(”90100n”); case B: printf(”8089n”); case C: printf(”7079n”); case D: printf(”6069n”); case E: pr

5、intf(”590n”); default : printf(“errorn”); ,break语句的功能:使流程跳出switch结构 switch(grade) case A: printf(”90100n”); case B: printf(”8089n”); case C: printf(”7079n”); case D: printf(”6069n”); case E: printf(”590n”); default : printf(“errorn”); ,说明: switch后面括弧内的“表达式”, 标准允许它为任何类型。 (2) 当表达式的值与某一个case后面的常量表达式的值相

6、等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。 (3) 每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。,(4) 各个case和default的出现次序不影响执行结 果。例如,可以先出现“default:”,再出现 “case :”,然后是“case:”。 (5) 执行完一个case后面的语句后,流程控制转移到下一 个case继续执行。“case常量表达式”只是起语句标号作用,并不是在条件判断。在执行 switch语句时,根据switch后面表达式

7、的值 找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。应该在执行一个case分支后,可以用一个 break语句来终止switch语句的执行。 (6) 多个可以共用一组执行语句。,4.4 程序综合举例,例46 写程序,判断某一年是否闰年。 用下图来表示判断闰年的算法。,解题思路: 根据闰年规则逐项进行判断,最后若判定year是闰年,就令;若非闰年,令。最终检查是否为(真),若是,则输出“闰年”信息。,#include void main()int year, leap; scanf(%d,(!) ; (!) ; (!) ; ;,运行情况: . .,例4.7 运输公司对用户计算运费。 路

8、程()越远,每公里运费越低。标准如下: 没有折扣 折扣 折扣 折扣 折扣 折扣 设每公里每吨货物的基本运费为,货物重为, 距离为,折扣为,则总运费的计算公式为: *(),分析折扣变化的规律性: 折扣的“变化点”都是的倍数 在横轴上加一种坐标,c的值为s/250。 c代表250的倍数。 ,无折扣; ,折扣; ,; ,; ,; ,。,#include void main ( ) int c,s;float p,w,d,f;scanf(%f,%f,%d,例4.8: 求x2方程的解。 基本算法: ,不是二次方程。 b2,有两个相等实根。 b2,有两个不等实根。 b2,有两个共轭复根。,#include

9、 #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f,%f,%f,else if(disc1e-6)x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(“has distinct real roots:%8.4f and %8.4fn”,x1,x2); elserealpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(“ has complex rootsn”); printf(“%8.4

10、f+%8.4fin”,realpart,imagpart); printf(“%8.4f-%8.4fin”,realpart,imagpart); ,float s1,s2,s3,s4,s5; int count=0 ;,printf(“count=%dn”,count);,printf(Please input 5 scores:);,scanf(%f,%f,%f,%f,%f,#include ,main() ,if (s1=90) count+; if (s2=90) count+; if (s3=90) count+; if (s4=90) count+; if (s5=90) count+;,练习:输入5个学生的成绩,统计90分以上的学生人数。,例 输入一个不多于5位的正整数,求出它是几位数.,main() long a; int place; printf(Enter a integer(099999):); scanf(“%ld”, ,运行: Enter a integer(099999): 12345 place is 5,运行: Ent

温馨提示

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

评论

0/150

提交评论