选择结构程序设计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。
c语言(第五章选择结构) c语言 教学课件
▪ 非闰年的判别:
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
C语言程序设计-if_else选择结构PPT
情景实现
int main() {
int i; printf(“明天下雨请输入1,不下雨请输入0\n”); scanf(“%d”,&i); if(i==0)
printf(“明天不下雨去春游\n”); else
printf(“明天下雨去图书馆\n”); return 0; }
例题讲解
从键盘上输入两个实数,比较并输出这两个数中 较大的一个。
printf(“两个数中较大的为%d\n”,b); return 0; }
课堂练习
体质指数 (Body Mass Index,简称BMI),是目前国际最常 用来量度体重与身高比例的工具。它利用身高和体重之间的 比例去衡量一个人是否过瘦或过肥。 体质指数(BMI)=体重(kg)/身高 (m)^2 编写一个C语言程序,输入班级某同学的身高体重,判断某 同学是否超重(BMI值大于24)。(在VC中实现此C程序)
C语言程序设计
使用if-else语句实现选择结构程序
目录
CONTENTS
01 情景导入 02 情景分析 03 if-else选择语句 04 例题讲解 05 课堂练习
情景导入
明天是周末,天气预报说明天有可能下雨, 小明计划如果明天不下雨就出去春游,否则 的话就去图书馆看书。 请根据以上情景设计一个C语言程序,模拟 小明明天的活动情况。
情景分析
根据案例描述,小明明天的活动有两个选择,去春游 或者去图书馆。小明具体选择什么活动要看明天是否 下雨。 在C语言中,可以通过if-else语句来实现类似的选择程序。
if-else选择语句
if-else语句的语法结构
if(条件) 选择语句1:; else 选择语句2;
开始if结构
成立
《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章-选择结构
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
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
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:值强制转换成整数。
C语言课件 第5章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
c语言 第四章 选择结构课件
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
C语言第四章选择结构ppt课件
/* 定义实型变量 x , y */
/* 求 x 的绝对值并赋给 y */
/* 输入 x 的值 */
/* 输出 x 的绝对值 */
/* 编译预处理:包含头文件 */
二、if ... else 语句
对这一句话“如果x>=0则y=x,如果x<0则y=-x”,可以写出以下语句:
表达式1 ? 表达式2 :表达式3
表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n )
if ( 表达式1 ) if ( 表达式2 ) 语句1; else 语句2;else if ( 表达式3 ) 语句3; else 语句4;
实现if ~ else 正确配对方法:加{ }
五、条件运算符
能否把两条语句合成一句,更好地体现这种逻辑关系呢?这就是 if ...... else 语句的功能。
简单的if 语句只能表达“如果 ,那么 ”的含义,而if ...... else 语句却能表达“如果 那么 否则 ”的含义。
If ( x>=0) y=x;if (x<0) y=-x;
a>b?a:c>d?c:d
a>b?a:(c>d?c:d)
表达式值为15,n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。
/* 求 x 的绝对值并赋给 y */
/* 输入 x 的值 */
/* 输出 x 的绝对值 */
/* 编译预处理:包含头文件 */
二、if ... else 语句
对这一句话“如果x>=0则y=x,如果x<0则y=-x”,可以写出以下语句:
表达式1 ? 表达式2 :表达式3
表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n )
if ( 表达式1 ) if ( 表达式2 ) 语句1; else 语句2;else if ( 表达式3 ) 语句3; else 语句4;
实现if ~ else 正确配对方法:加{ }
五、条件运算符
能否把两条语句合成一句,更好地体现这种逻辑关系呢?这就是 if ...... else 语句的功能。
简单的if 语句只能表达“如果 ,那么 ”的含义,而if ...... else 语句却能表达“如果 那么 否则 ”的含义。
If ( x>=0) y=x;if (x<0) y=-x;
a>b?a:c>d?c:d
a>b?a:(c>d?c:d)
表达式值为15,n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。
第4章选择结构程序设计.ppt
材料与能源学院
2019/10/19
C语言程序设计
4.2.1 用if语句处理选择结构举例
例4.2 输入两个实数,按代数值由小到大 的顺序输出这两个数。
解题思路:
只需要做一次比较,然后进行一次交换即可 用if语句实现条件判断 关键是怎样实现两个变量值的互换
互换前 A ★
●B
互换后 A ●
表达式值为真(1)是非闰年,否则为闰年。
材料与能源学院
2019/10/19
Page21
C语言程序设计
4.5 条件运算符和条件表达式
条件运算符 格式:表达式1?表达式2:表达式3
功能:判断表达式1的值,如果成立就执行表达式2,否 则就执行表达式3
使用场合:若在if语句中,当被判别的表达式的值为“真” 或“假” 时,都执行一个赋值语句且向同一个变量赋值 时,可以用一个条件运算符来处理。
内嵌if 内嵌if
匹配规则:else总是
if (number>500) cost=0.15; else if(number>300) cost=0.10; else if(number>100) cost=0.075; else if(number>50) cost=0.05; else cost=0;
材料与能源学院
2019/10/19
Page14
为(ch+32),即相应的小写字母。如果ch的值不是大 写字母,则条件表达式的值为ch,即不进行转换。
scanf("%c",& ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一直这样做下去
真
表达式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码,否则,输出“%”。
main()
{char a;
scanf("%c",&a);
if( a>='A'&&a<='Z'||a>='a'&&a<='z'
)
printf(“%d \n",a);
else
printf(“ %% \n");
第4章 选择结构程序设计
4.1 关系运算符与关系表达式 4.2 逻辑运算符与逻辑表达式 4.3 if语句 4.4 switch语句 4.5 结构嵌套程序举例
(其中4.1、4.2两节已在第二章中详细介绍,此处 不再赘述。)
上一页
下一页
教学目的和基本要求:
要求学生掌握选择结构程序设计, 嵌套程序设计,学会运用if语句及 switch语句。
if(x>10) y=x/10;
printf(“\ny=%f”,y);
}
上一页
下一页
方法二:用if语句做语句2
#include<stdio.h> main( ) { float x,y;
scanf(“%f”,&x); if(x<=-10) y=2*x; else if(x<=0) y=2+x;
else if(x<=10) y=x-2; else y=x/10;
这种用if语句作为上一层if语句的语句1和语句2 的结构,称为if语句的嵌套。
上一页
下一页
if 语句的二层嵌套结构如下:
if ( 表达式1)
if ( 表达式1_2) 语句1_1
else
语句1_2
else
if ( 表达式2_1) 语句2_1
else
语句2_2
非0
表达式1
0
表达式1_2
非0
0
表达式1_2
例:计算分段函数:y= x-2 0<x<=10
x/10 x>10
上一页
下一页
方法一:用简单语句
#include<stdio.h>
main( )
{ float x,y;
scanf(“%f”,&x);
if(x<=-10) y=2*x;
if(-10<x&&x<=0) y=2+x;
if(0<x&&x<=10) y=x-2;
3. (条件表达式)后不要加;
上一页
下一页
例:计算分段函数
main() { float x , y;
scanf(“%f ”, &x); y=2*x; if ( x < 0 ) y = 3 - x ; printf(“y= %.2f”, y ); }
上一页
下一页
例:输入两个数X,Y,如果x大于y,则交换两数。
}
上一页
下一页
if语句的语句1和语句2又称为if的执行语 句。if的执行语句在语法上是一条语句,可以 是任何类型的语句,简单语句、复合语句、 空语句、流程控制语句都可以作为if的执行语 句。
下面我们通过一个例子分别介绍用不同 的语句作为if的执行语句的情形:
2*x x<= -10 2+x -10<x<=0
printf(“\ny=%f”,y); }
这种用if语句作为上一层if语句的语句2的结构, 称为if语句的多分支选择结构。
上一页
下一页
多分支选择语句一般形式:
if (表达式) 语句1
else if (表达式)语句2
假
表达式1
else …
流程图如左:
先判断表达式1的值
真
假
表达式2
为0就执行下一个判断 非0就执行下面的语句
上一页
下一页
C语言中的选择语句有两种:
双分支选择语句 if 多分支选择语句 switch
上一页
下一页
4.3 if语句
1. if语句的最简单形式:
if (条件表达式) 语句;
if (条件表达式) { 语句;
语句;
……}
表达式
真
语句
假
说明:1. 条件表达式的值为1或0,必须用( )括住 2. 若有多条语句(复合语句)时,用{ }括住。
上一页
下一页
例: 输入两个数, 比较其大小, 将较大的数输出。
算法分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
main() { int x , y;
scanf(“%d,%d ”, &x,&y); if ( x < y ) {
t = x; x = y; y = t; } printf(“x= %d,y=%d”, x,y ); }
上一页
下一页
2. if语句的双分支形式:
if (表达式) 语句1
else
语句2
执行过程: 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2
假
表达式
真
语句1
语句2
if语句的双分支形式,在语法上视 为一条语句。
上一页
下一页
例:计算分段函数
main() { float x , y;
scanf(“%f ”, &x); if ( x < 0 ) y = 3 - x ; else y = 2 * x ; printf(“y= %.2f”, y ); }