04 选择结构程序设计 PPT课件

合集下载

C语言程序设计第4章选择结构程序设计ppt课件

C语言程序设计第4章选择结构程序设计ppt课件

8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。

选择结构程序设计PPT课件

选择结构程序设计PPT课件

一直这样做下去


表达式3 假 直到得出最后结果

语句1
语句2
语句3
语句4
上一页
下一页
方法三:语句1与语句2都为if语句
#include<stdio.h> main( ) { float x,y;
scanf(“%f”,&x); if(x<=0)
if(x>= -10) y=2+x; else y=2*x; else if(x<=10) y=x-2; else y=x/10; printf(“\ny=%f”,y); }
教学重点:
if语句、嵌套程序。
上一页
下一页
很多问题是顺序结构解决不了的
看这样一个例子:
计算分段函数
x<0
Y
N
y=3-x y=2x
N-S图
x在大于等于0和小于0两种不同的情况时,函数 将用不同的表达式来求y的值,这时就需要在计 算y的值之前,先对x的值进行判断,C语言中用 选择语句来实现这一判断。算法N-S图如右上图 所示。
0
语句1_1
语句1_2
非0
语句2_1
语句2_2
上一页
下一页
说明: if后面的表达式类型任意
语句可以是复合语句 如:if(ifx()a==b&if(&xx!==0=)y) printf(“a=b,x=y”);
if(if!(x3)) priinf(tfx(=“=O0K)”); 例 考i虑f(‘下a’)面p程ri序ntf的(“%输d出”,结’a’果); :
上一页
下一页
练习:编程实现,从键盘输入一个字符,如果是 字母,则输出对应的ASCII码,否则,输出“%”。

C语言之选择结构程序设计PPT课件

C语言之选择结构程序设计PPT课件
char grade;
printf("请输入学生成绩:"); scanf("%d",&score); temp=score/10;
第32页/共45页
switch(temp) { case 10: case 9: grade='A'; break; case 8: grade='B'; break; case 7: grade='C'; break; case 6: grade='D'; break; case 5: case 4: case 3: case 2: case 1: case 0: grade='E'; }
else if (表达式3) 语句3

else 语句n
第22页/共45页
练习:判断由键盘输入的字符是数字、大写字母、小写字母、空格还是其他字符。
#include <stdio.h> void main() { char c; c=getchar();
第23页/共45页
if(c<='9'&&c>='0') printf("%c 是字符!\n",c);
第2页/共45页
5.1 关系运算符与关系表达式
1、关系运算符 假值用0表示,非0都为真; 关系运算符与优先级: < <= > >= (高) == != (低) 结合性:左到右
第3页/共45页
2、关系表达式
赋值运算 关系运算 算术运算(高) 例: c>a+b 等价于 c>(a+b)
a=b>c等价于 a=(b>c)

第4章-选择结构PPT课件

第4章-选择结构PPT课件
例如“如果你有空,并且天气好,我们就去打篮球”,此 例中,只有同时满足“你有空”和“天气好”两个条件, “去打篮球”这个动作才会发生。
再如,要表示数学中常用的区间取值,要求检查int型变量x 的取值是否在[1,20]区间,初等数学中通过判断表达式 “1=<x<=20”的值来确定,C语言中并不支持这种写法,需 要表示为 “x>=1”且“x<=20”, 这两个表达式同时成立, 才表示x的取值落在了[1,20]区间。
条件判断
现实生活中我们经常要做判断,根据不同的情况去做不同的 事情:举例
1、如果外面阴天,出门就把雨伞带上
2、如果周末天气好,我们就去郊游,否则就去看电影
3、如果明天不下雨,我们就去爬山,如果下小雨,我们 就去体育馆打球,如果下大雨,就呆在屋子里。
4、如果你有空,并且天气好,我们就去打篮球
即当该表达式为结果为真时,表示y是闰年,否则 y不是闰年。相应的判断某一年份是否为非闰年的 表达式即为判断闰年对应的表达式取反:
!(((y % 4 == 0)&&(y % 100 != 0)) || (y % 400 == 0))
注意:当逻辑表达式比较复杂,出现多个条件的 连接时,建议采用“()”来明确层次关系。
X==1.0 || x==3.0 X>=z && x<=y z>x || y<x
0 || 1等于1 1 &&1等于1 0 || 0 等于0
9
高职学院 计算机专业 《程序设计基础》
逻辑运算实例
根据输入的年份数值,判断其是否为闰年。假设int型变量y里 面保存了此年份数据。
分析:根据历法,闰年的年份值是4的倍数但又不是100的倍 数,或者是400的倍数。采用自顶向下的分析方法,分析如下

选择结构程序设计

选择结构程序设计

#include "stdio.h" main( ) { int year,flag; scanf("%d",&year); if(year%4==0) if(year%100==0) if(year%400==0) flag=1; else flag=0; else flag=1; else flag=0; if(flag) printf("YES"); else printf("NO"); }
优先级:条件运算符的运算优先级低于关系运算符 和算术运算符,高于赋值符 结合方向:自右至左
【例4-7】
用条件运算符对【例4-3】重新编程,输出两 个整数中的最大者
/* EX4-7.C */ main() { int a, b; printf("input the two numbers: "); scanf("%d,%d",&a,&b); printf("max=%d",a>b?a:b); }
单分支if语句控制流程
【例4-2】 从键盘输入学生成绩并判断是否及格, 若及格输出“pass”
表达式 非0 语句
0
/* EX4-2.C */ main() { float a; printf("please input the score: "); scanf("%f",&a); if(a>=60) printf("pass\n"); }
【注意】
初学者经常会将符号混淆,尤其是将赋值运算 符“=”和关系运算符中的相等运算符“= =”混淆。 例如:判断a的值是否等于2,应写为:a == 2, 初学者经常会在这里写为:a = 2。这样,不管a的 值原来为多少,现在给a赋值为2,表达式的值为2, 永远为真。这样的写法可能会造成程序的执行错 误,特别是后面我们将学习循环结构,这种错误 的写法常会造成程序的死循环,使程序没有正确 的运行结果。

C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计

C语言程序设计ppt课件-第3章-选择结构

C语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档