C语言 选择结构程序设计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语言之选择结构程序设计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)
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)
《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语言第5章 选择结构的程序设计PPT教学课件
开始
输入a,b,c
a<b?
F
T a与b交换
a<c?
F
T a与c交换
b<c?
F
T b与c交换
输出a,b,c
2020/12/10
结束
11
2.双分支if语句——if_else语句
格式:
if (<表达式>) 语句1
else
语句2
2020/12/10
12
2. if_else语句
功能:
T 语句1
表达式
F 语句2
2020/12/10
13
3. 多分支if语句
格式:
if (<表达式1>) 语句1 else if (<表达式2>) 语句2 else if (<表达式3>) 语句3
…... else if (<表达式n-1>) 语句n-1 else 语句n
2020/12/10
14
3. 多分支语句
功能: F 表达式1
(4)default一般出现在所有的case之后,也可以出现在 case之前或两个case语句之间。Default可以省略。
2020/12/10
23
5.2 switch语句
例1 用switch语句设计程序,实现输出学生成绩和 等级的功能。 分析:因为分数x为0~100分,则x/10的值为0,1,2, 3,4,5,6,7,8,9,10。
…… case <常量表达式n>:语句n default 语句n+1
}
2020/12/10
21
5.2 switch语句
功能:
首先计算<表达式>的值,然后依次与<常量表达式i> (i=1,2,…,n)比较,若表达式的值与<常量表达式j>相 等,则从<常量表达式j>处开始执行,这里就是执行的 入口,直到switch语句结束。若所有的<常量表达式i> (i=1,2,…,n)的值均不等于表达式的值,则从default处 开始执行。
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语言条件判断选择结构程序设计课件
PPT学习交流
9
关系表达式的结果
• 在C语言中,关系表达式的结果为1或0
• 关系表达式为0,表示“假”
• 例如
• 3<2
2!=6
值为0
• 若a=3, b=2, c=1
值为1
a>b>c
(a>b)==c
b+c<a
值为0
值为1
值为0
PPT学习交流
10
PPT学习交流
24
逻辑表达式总结(3)
PPT学习交流
4
本次课程所讲内容
• 条件判断
• 关系运算符与关系表达式 • 逻辑运算符与逻辑表达式
• 选择结构程序设计
• if语句 • 条件运算符与条件表达式 • switch-case语句
PPT学习交流
5
关系运算符
•关系运算是一种 “比较运算”,即用 关系运算符对两 个运算量进行比 较
• 例如,关系表达式
算术运算符 (高) 关系运算符 赋值运算符 (低)
• 例如
• c>a+b • a>b==c • a==b<c • a=b>c • x!=a*b<c
PPT学习交流
8
关系表达式
• 用关系运算符将若干表达式连接起 来的式子,称为关系表达式
• a+b>b+c • (a=3)>(b=5) • ‘a’<‘z’ • (a>b)>b>c • 2*a+b<c-d
• a>b • a<=b • a+b>c • ‘a’<‘v’
PPT学习交流
6
关系运算符及其优先次序
C语言程序ppt课件ch4 选择结构名师教学资料
表达式后面不加分号 语句之后有分号 else不是语句,不能单独使用 当if后有多个执行语句时,必须用{ }将多
个语句括起来,构成一个复合语句, { }之 外不必有分号。
共 39 页 第 19 页
按由小到大的顺序输出两个数。
例5
#include “stdio.h” main( ) { int a,b;
仅执行表达式为真的else if后的内嵌语句,若所有的 表达式值都为0,则执行最后一个else后的内嵌语句.
共 39 页 第 24 页
例6
1 x 0
已知
y(x)
0
x0
1 x 0
编写程序,输入一个x的值,输出y值。
程序为: #include “stdio.h”
main( ) { int x, y; scanf(“%d”,&x);
x%10==y%10 如何判断十位数上数字相同?
共 39 页 第 6 页
4.2 逻辑运算符和逻辑表达式
4.2.1 逻辑运算符
C语言提供三种逻辑运算符:
&& (逻辑与) 、 || (逻辑或) 、! (逻辑非)
说明:
(1)“&&”和“|| ”是“双目(元)运算符”,它要 求有两个操作数。
(2)“! ”是“单目(元)运算符”,只要求有一个 运算量。
功能: 判断表达式的值,若为非0,再判断表达式1的 值,非0执行语句11,否则执行语句12
若表达式的值为0,再判断表达式2的值,非0 执行语句21,否则执行语句22
共 39 页 第 22 页
思考
下列程序段表示的数学式子?
y=-1;
if (x!=0)
{if (x>0) y=2*sin(x);}
个语句括起来,构成一个复合语句, { }之 外不必有分号。
共 39 页 第 19 页
按由小到大的顺序输出两个数。
例5
#include “stdio.h” main( ) { int a,b;
仅执行表达式为真的else if后的内嵌语句,若所有的 表达式值都为0,则执行最后一个else后的内嵌语句.
共 39 页 第 24 页
例6
1 x 0
已知
y(x)
0
x0
1 x 0
编写程序,输入一个x的值,输出y值。
程序为: #include “stdio.h”
main( ) { int x, y; scanf(“%d”,&x);
x%10==y%10 如何判断十位数上数字相同?
共 39 页 第 6 页
4.2 逻辑运算符和逻辑表达式
4.2.1 逻辑运算符
C语言提供三种逻辑运算符:
&& (逻辑与) 、 || (逻辑或) 、! (逻辑非)
说明:
(1)“&&”和“|| ”是“双目(元)运算符”,它要 求有两个操作数。
(2)“! ”是“单目(元)运算符”,只要求有一个 运算量。
功能: 判断表达式的值,若为非0,再判断表达式1的 值,非0执行语句11,否则执行语句12
若表达式的值为0,再判断表达式2的值,非0 执行语句21,否则执行语句22
共 39 页 第 22 页
思考
下列程序段表示的数学式子?
y=-1;
if (x!=0)
{if (x>0) y=2*sin(x);}
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 语句是多分支的选择语句又称开关语句。
C语言程序设计教程:选择结构程序设计
25
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
C语言选择结构程序设计.ppt
择
结
构
程
序
设 计
C
语
– 逻辑运算符和表达式
言 程
• 逻辑运算符
序
– 种类: ! && ||
设 计
– 逻辑运算真值表
a
b
!a
!b a&&b a||b
真
真
假
假
真
真
真
假
假
真
假
真
假
真
真
假
假
真
假
假
真
真
假
假
选 择 结 构 程 序
设< >
计
–C语言中,运算量: 0表示“假”, 非0表示“真”,
运算结果: “假”用0表示, “真” 用1表示,
选 多分支选择结构
择 结 构 程 序 设 计
k k=k1
k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
C
语 言
❖循环结构
程 序
当型循环结构
设
计
假 P
真
A
当P为真 A
直到型循环结构
选
A
A
择
假
直到P为真
结
P
构 程
真
序
设 计
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
C
优先级7(低)
a>b!=c //(a>b)!=c
– 关系表达a式==:b<用c 关系//运a=算=(符b<将c)两个表达式连接起来;以
下都是合a法=b的>c关系表/达/a式=(:b>c)
C语言程序设计 第3章 选择结构 -
}
如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
if (disc<0)
-15<0为真
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
x2=%7.2f\n”,x1,x2);
由键盘输入a,b,c。假设a,b,c的值任意,并
不保证 b24a。c需0要在程序中进行判别,
如果
b2 ,4就a计c算0并输出方程的两个
实根,否则就输出“方程无实根”的信息。
7
解题思路 开始
a, b, c d=b2-4ac 求根:x1、x2 x1、x2
end
开始
a, b, c
d=b2-4ac
n
y
d>=0
标题添加
点击此处输入相 关文本内容
点击此处输入 相关文本内容
2
第4章 选择结构程序设计
学习目标:掌握关系运算、逻辑运算和C语言条
件语句的使用
重点
if语句、switch语句的使用
难点
if语句的嵌套
主要内容: 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 3.if语句 4.switch语句
3
第4章 选择结构程序设计
4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式 4.6 用switch语句实现多分支选择结构 4.7选择结构程序综合举例
1
标题添加
点击此处输入相 关文本内容
前言
点击此处输入 相关文本内容
非0 ab
a,b
end
22
例4.3 输入3个数a,b,c,要求按由小到 大的顺序输出。
23
➢解题思路:可以先用伪代码写出算法:
if a>b,a和b对换 (a是a、b中的小者) if a>c,a和c对换 (a是三者中最小者) if b>c,b和c对换 (b是三者中次小者) 顺序输出a,b,c
11
if (disc<0)
8<0为假
printf(“has not real roots\n”);
else { p=-b/(2.0*a);
p的值变为-1
q=sqrt(disc)/(2.0*a);
q的值变为0.71
x1=p+q;
x1的值变为-0.29
x2=p-q;
x2的值变为-1.71
printf(“real roots:\nx1=%7.2f\n
➢解题思路:
只需要做一次比较,然后进行一次交换即可 用if语句实现条件判断 关键是怎样实现两个变量值的互换
互换前 A ★
●B
互换后 A ●
★B
17
4.2.1 用if语句处理选择结构举例
C★
A★
●B
18
4.2.1 用if语句处理选择结构举例
C★
A ★●
●B
19
4.2.1 用if语句处理选择结构举例
C★
A●
★● B
20
#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;
} 21
x2=%7.2f\n”,x1,x2);
}
return 0; }
复合语句
14
4.2 用if语句实现选择结构
4.2.1 用if语句处理选择结构举例 4.2.2 if语句的一般形式
15
4.2.1 用if语句处理选择结构举例
例4.2 输入两个实数,按代数值由小到大 的顺序输出这两个数。
16
4.2.1 用if语句处理选择结构举例
序中都会包含选择结构,在进行下一个 操作之前先进行条件判断
5
4.1 选择结构和条件判断
➢C语言有两种选择语句: (1)if语句,实现两个分支的选择结构 (2)switch语句,实现多分支的选择结构
6
4.1 选择结构和条件判断
例4.1 在例3.5的基础上对程序进行改进。题 目要求是求 a2xbx 方c 程0的根。
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) { t=a;
a=b; b=t;
选择结构, 用if语句实 现的
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
开始
a,b
b>a 0
x2=%7.2f\n”,x1,x2);
}
return 0;
}
12
if (disc<0)
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
4.1 选择结构和条件判断
➢在现实生活中,需要进行判断和选择的 情况是很多的
如果你在家,我去拜访你 如果考试不及格,要补考 如果遇到红灯,要停车等待 周末我们去郊游 70岁以上的老年人,入公园免票
4Leabharlann 4.1 选择结构和条件判断
➢在现实生活中,需要进行判断和选择的 情况是很多的
➢处理这些问题,关键在于进行条件判断 ➢由于程序处理问题的需要,在大多数程
x2=%7.2f\n”,x1,x2);
}
return 0; }
选择结构,用if语句实现的
13
if (disc<0)
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
}
return 0;
}
10
#include <stdio.h> #include <math.h> int main ( ) {
double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
计算b2-4ac,disc的值变为8
求x1、x2
无实根
x1、x2
end 8
#include <stdio.h> #include <math.h> int main ( ) {
double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
计算b2-4ac,disc的值变为-15
if (disc<0)
-15<0为真
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
x2=%7.2f\n”,x1,x2);
由键盘输入a,b,c。假设a,b,c的值任意,并
不保证 b24a。c需0要在程序中进行判别,
如果
b2 ,4就a计c算0并输出方程的两个
实根,否则就输出“方程无实根”的信息。
7
解题思路 开始
a, b, c d=b2-4ac 求根:x1、x2 x1、x2
end
开始
a, b, c
d=b2-4ac
n
y
d>=0
标题添加
点击此处输入相 关文本内容
点击此处输入 相关文本内容
2
第4章 选择结构程序设计
学习目标:掌握关系运算、逻辑运算和C语言条
件语句的使用
重点
if语句、switch语句的使用
难点
if语句的嵌套
主要内容: 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 3.if语句 4.switch语句
3
第4章 选择结构程序设计
4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式 4.6 用switch语句实现多分支选择结构 4.7选择结构程序综合举例
1
标题添加
点击此处输入相 关文本内容
前言
点击此处输入 相关文本内容
非0 ab
a,b
end
22
例4.3 输入3个数a,b,c,要求按由小到 大的顺序输出。
23
➢解题思路:可以先用伪代码写出算法:
if a>b,a和b对换 (a是a、b中的小者) if a>c,a和c对换 (a是三者中最小者) if b>c,b和c对换 (b是三者中次小者) 顺序输出a,b,c
11
if (disc<0)
8<0为假
printf(“has not real roots\n”);
else { p=-b/(2.0*a);
p的值变为-1
q=sqrt(disc)/(2.0*a);
q的值变为0.71
x1=p+q;
x1的值变为-0.29
x2=p-q;
x2的值变为-1.71
printf(“real roots:\nx1=%7.2f\n
➢解题思路:
只需要做一次比较,然后进行一次交换即可 用if语句实现条件判断 关键是怎样实现两个变量值的互换
互换前 A ★
●B
互换后 A ●
★B
17
4.2.1 用if语句处理选择结构举例
C★
A★
●B
18
4.2.1 用if语句处理选择结构举例
C★
A ★●
●B
19
4.2.1 用if语句处理选择结构举例
C★
A●
★● B
20
#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;
} 21
x2=%7.2f\n”,x1,x2);
}
return 0; }
复合语句
14
4.2 用if语句实现选择结构
4.2.1 用if语句处理选择结构举例 4.2.2 if语句的一般形式
15
4.2.1 用if语句处理选择结构举例
例4.2 输入两个实数,按代数值由小到大 的顺序输出这两个数。
16
4.2.1 用if语句处理选择结构举例
序中都会包含选择结构,在进行下一个 操作之前先进行条件判断
5
4.1 选择结构和条件判断
➢C语言有两种选择语句: (1)if语句,实现两个分支的选择结构 (2)switch语句,实现多分支的选择结构
6
4.1 选择结构和条件判断
例4.1 在例3.5的基础上对程序进行改进。题 目要求是求 a2xbx 方c 程0的根。
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) { t=a;
a=b; b=t;
选择结构, 用if语句实 现的
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
开始
a,b
b>a 0
x2=%7.2f\n”,x1,x2);
}
return 0;
}
12
if (disc<0)
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
4.1 选择结构和条件判断
➢在现实生活中,需要进行判断和选择的 情况是很多的
如果你在家,我去拜访你 如果考试不及格,要补考 如果遇到红灯,要停车等待 周末我们去郊游 70岁以上的老年人,入公园免票
4Leabharlann 4.1 选择结构和条件判断
➢在现实生活中,需要进行判断和选择的 情况是很多的
➢处理这些问题,关键在于进行条件判断 ➢由于程序处理问题的需要,在大多数程
x2=%7.2f\n”,x1,x2);
}
return 0; }
选择结构,用if语句实现的
13
if (disc<0)
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
}
return 0;
}
10
#include <stdio.h> #include <math.h> int main ( ) {
double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
计算b2-4ac,disc的值变为8
求x1、x2
无实根
x1、x2
end 8
#include <stdio.h> #include <math.h> int main ( ) {
double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;
计算b2-4ac,disc的值变为-15