C语言_条件判断、选择结构程序设计
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语言 第4章 选择结构程序设计

#include <stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 , 和 对换 是 、 中的小者 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return 0; }
if (disc<0) 8<0为假 为假 printf(“has not real roots\n”); else 的值变为-1 的值变为 { p=-b/(2.0*a); p的值变为 的值变为0.71 的值变为 q=sqrt(disc)/(2.0*a); q的值变为 x1=p+q; x1的值变为 的值变为-0.29 的值变为 x2=p-q; x2的值变为 的值变为-1.71 的值变为 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; }
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 x2=%7.2f\n”,x1,x2); } return 0; 复合语句 }
C语言有两种选择语句: 语言有两种选择语句: 语言有两种选择语句 (1)if语句,实现两个分支的选择结构 语句, 语句 (2)switch语句,实现多分支的选择结构 语句, 语句
C语言程序设计第3章选择结构程序设计

√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
四《C语言程序设计》实验四选择结构程序设计实验目的1、掌握分支

四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
C语言程序设计第4章 选择结构程序设计-2018

(x<0&&y<0&&z>=0)|| (x>=0&&y<0&&z<0)|| (x<0&&y>=0&&z<0)
(2) x和y中至少有一个小于z。
设x、y、z均为int型变量,则对应表达式为: (x<z)||(y<z)
注意
– 可等价于一条语句 – 可以嵌套使用
• 格式
{ <语句序列> { <语句序列> } <语句序列>
}
4.3.2 复合语句
• 【例4-2】迪士尼门票规定65周岁及以上的老 年人,平日票价为280元,高峰日票价为375元。
– 语句1为内嵌语句,只允许是一条语句,可以是简单的语句、复合 语句或者另一个if语句等
• 执行过程
– 先求解表达式
– 如果表达式的值为“真”,则执行语句1
– 否则,如果表达式的值为“假”,则什么都不做
4.3.2 复合语句
• 复合语句
– 用一对大括号将一组语句序列括起来,通常可以出现在允 许单条语句出现的地方
第4章 选择结构程序设计
目录
4.1 门票价格问题 4.2 条件的表示 4.3 单分支结构 4.4 双分支结构 4.5 多分支结构 4.6 综合案例 练习 4
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题
C语言程序设计—选择结构

C语言程序设计—选择结构C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。
它提供了丰富的选择结构,允许程序根据条件来选择不同的执行路径。
选择结构是控制程序流程的重要组成部分,它基于条件的真假来决定不同的操作。
1. if语句if语句是C语言中最常用的选择结构之一。
它用于根据条件的真假来执行不同的代码块。
if语句的基本格式如下:```if (条件) {// 条件为真时执行的代码块}```可以根据需要添加else语句来处理条件为假的情况。
若条件为假,则执行else后的代码块。
示例如下:```if (条件) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块}```2. switch语句switch语句用于在多个可能的选项之间选择一个执行路径。
它将某个变量的值与一系列case标签进行比较,并根据匹配的结果执行相应的代码块。
switch语句的基本格式如下:```switch (表达式) {case 值1:// 执行代码块1break;case 值2:// 执行代码块2break;default:// 默认执行代码块break;}在switch语句中,表达式的值会与每个case标签进行比较,如果匹配则执行相应的代码块。
在每个代码块的末尾,使用break语句来跳出switch语句,以避免执行其他不相关的代码块。
如果没有匹配到任何一个case标签,将执行默认的代码块。
3. 嵌套选择结构C语言允许选择结构的嵌套使用,即在一个选择结构中嵌入另一个选择结构。
这样可以根据多个条件进行判断,实现更灵活和复杂的程序逻辑。
```if (条件1) {if (条件2) {// 执行代码块1} else {// 执行代码块2}} else {// 执行代码块3}在上述示例中,先判断条件1,如果条件1为真,则进一步判断条件2。
根据不同的条件结果执行相应的代码块。
选择结构是C语言程序设计中非常重要的部分,它使程序能够根据不同的条件来选择不同的执行路径。
C语言程序设计第四章 选择结构程序设计

辑量。
Page 4
4.1 逻辑量
逻辑表达式 1.逻辑运算符 逻辑运算符有以下3种:&&(逻辑与)、||(逻辑或)、!(逻辑非) “&&”和“||”是双目运算符,“!”是单目运算符,逻辑运算的运算对 象是逻辑量。其中“!”的优先级别高于“&&”,“&&”的优先级高于
“||”。“&&”和“||”是左结合运算符,“!”是右结合运算符。
Page 6
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ① “&&”运算的短路规则。 例如:a&&b
当左目a为逻辑假时,有当左目a为逻辑真时,才运算右目b。
Page 7
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ②“||”运算的短路规则。 例如:a||b
逗号运算符高,结合性为右结合。
Page 12
4.2 if语句
条件表达式 2.条件表达式 用条件运算符将运算对象连接起来的符合C语言规则的表达式称为条 件表达式。 条件表达式的运算过程为:先判断第1目逻辑量,如果逻辑量为真,
选取第2目的结果作为整个表达式的值,否则选取第3目结果作为整个
表达式的值。 条件表达式中存在类型的自动转换,条件表达式的值的类型是第2目
立的表达式对待。
Page 14
4.2 if语句
if语句的嵌套 从if语句的格式来看,if( )~else只能解决双分支问题。如果要解决多 分支问题,则需使用if语句的嵌套。 例如多分支函数:
1 x0 y= 0 x 0 1 x 0
C选择结构程序设计

printf("The maximum value is %dn", max);
简单的选择结构程序示例
• return 0;
简单的选择结构程序示例
}
```
复杂的选择结构程序示例
• 总结词:一个复杂的示例,通过嵌套的ifelse语句实现多个条件判断和流程控制。
复杂的选择结构程序示例
嵌套if-else语句
选择结构在游戏中的应用示例
}
printf("Congratulations! You guessed the number
in %d tries.n", tries); // 输出猜测结果和猜测次数
选择结构在游戏中的应用示例
• return 0;
选择结构在游戏中的应用示例
}
```
06
总结与展望
• 人工智能与机器学习:随着人工智能和机器学习技术的不断发展,选择结构程 序设计可能会与这些领域产生更多的交叉和融合。例如,使用机器学习算法来 自动生成或优化选择结构代码,从而提高开发效率和代码质量。
THANKS
感谢观看
• 泛型编程:泛型编程是一种更通用的编程范式,它允许算法独立于特定数据类 型进行操作。泛型选择结构可以进一步提高代码的复用性和可维护性,是未来 发展的重要方向之一。
• 条件编译:条件编译是一种特殊的编程技巧,可以根据预定义的宏或条件来决 定是否编译某段代码。条件编译可以看作是一种更灵活的选择结构,它允许在 编译时根据不同条件决定程序的某些部分是否被包含。
简单的选择结构程序示例
• 总结词:一个简单的选择结构程序示例,通过if语句实现 条件判断和流程控制。
简单的选择结构程序示例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系表达式成立时,结果为1,表示“真” 关系表达式不成立时,结果为0,表示“假”
例如
3<2
值为0
2!=6
值为1
若a=3, b=2, c=1
a>b>c 值为0 (a>b)==c 值为1 b+c<a 值为0
关系运算的结果可以参与运算
若a=3, b=2, c=1
d=a>b
不推荐使用
C语言
—条件判断、选择结构程序设计
徐艳艳 xuyyxu@
1
本次课程所讲内容
条件判断
关系运算符与关系表达式
逻辑运算符与逻辑表达式
选择结构程序设计
if语句 条件运算符与条件表达式 switch-case语句
2
本次课程所讲内容
条件判断
关系运算符与关系表达式
逻辑运算符与逻辑表达式
例如
c>a+b
a>b==c
a==b<c
a=b>c
x!=a*b<c
关系表达式
用关系运算符将若干表达式连接 起来的式子,称为关系表达式
a+b>源自+c(a=3)>(b=5)
„a‟<„z‟
(a>b)>b>c
2*a+b<c-d
9
关系表达式的结果
在C语言中,关系表达式的结果为1或0
2.0
x
if- else if 结 #include <stdio.h> void main() 构程序举例 { double x,y; c6_6.c
printf("Please input x:"); scanf("%lf",&x); if(x<-2.0) y=-1.0; else if(x<=2.0) y=0.5*x; else y=1.0; printf("y=%.1f\n",y);
37
if-else if 结构
格式
if (表达式1) 语句1; else if (表达式2) 语句2; …… else if (表达式n-1) 语句n-1; else 语句n;
38
if-else if 结构
表达式1
假(0) 假(0) 假(0) 假(0)
真(非0)
表达式2
真(非0)
表达式3
真(非0)
a=4,b=5 !a || a>b的值为0,表示“假”
23
逻辑表达式总结(2)
逻辑表达式中的运算对象可以是单个 的量,也可以是表达式
a && b, a==b || x==y, !(a>b) && x>y
逻辑表达式中的运算对象可以是0和非 0,也可以是字符型、实型或指针型
4 && 0 || 3.6,'A' && 'B'
a || !(a>b)
逻辑表达式总结(3)
在逻辑表达式的求解中,并不是所有 的逻辑运算符都被执行,有时只需执 行一部分运算就可以得出结果 a && b && c a || b || c 设m=1,n=1,a=1,b=2,c=3,d=4
(m=a>b)
&& (n=c>d) 表达式值为0,m=0,n=0 (m=a>b) || (n=c>d) 表达式值为0,m=0,n=0
36
if- else结构 程序举例 c6_5.c
正确!!
#include <stdio.h> void main() { float x; int y; printf("Please input x:"); scanf("%f",&x); if(x>=2.0&&x<=6.0) { y=1;printf("y=%d\n",y); } else { y=0;printf("y=%d\n",y); } }
d=1 e=0
e=a>b>c
f=a>b+c<b g=(a>b)+(c<b)
f=1
g=2
11
本次课程所讲内容
条件判断
关系运算符与关系表达式
逻辑运算符与逻辑表达式
选择结构程序设计
if语句 条件运算符与条件表达式 switch-case语句
12
有时需要判断的条件不是一个简单的 条件,而是一个复合的条件 例如
能被4整除,但不能被100整除 能被400整除
用变量year表示某一年
(year%4==0&&year%100!=0)||year%400==0
逻辑表达式总结(1)
逻辑表达式中可以有多个逻辑运算符
4 && 0 || 2,!a || a>b
逻辑表达式的结果只能是0或1
4 && 0 || 2的值为1,表示“真”
34
if-else结构举例
编写一段程序, 完成以下任务:
y 1 x
如右图所示,输 入一个实数x,如 果 2.0<=x<=6.0 , 则整数y=1;否则, y=0
2.0
6.0
35
if- else结构 程序举例 c6_4.c
完成上页ppt 中的任务
错误!!
无论x取什么 样的值,y的 值总是1
#include <stdio.h> void main() { float x; int y; printf("Please input x:"); scanf("%f",&x); if(2.0<=x<=6.0) { y=1;printf("y=%d\n",y); } else { y=0;printf("y=%d\n",y); } }
例如,a&&b, (a>0)&&(b>0)
在C语言中,逻辑表达式的结果为1或0
逻辑表达式成立时,结果为1,表示“真” 逻辑表达式不成立时,结果为0,表示“假”
逻辑表达式的运算对象
在C语言中,对于逻辑表达式中的每个运 算对象
某个量的值为0时,表示“假”
某个量的值为非0时,表示“真”
真 假
表达式4
真(非0) 语句1 语句2 语句3 语句4 语句5
39
if-else if 结构举例
编写一段程序,完成以下任务:
如下图所示, 输入一个实数x 如果x<-2.0, 则实数y=-1.0 如果-2.0<=x<=2.0,则y=0.5x y 否则,y=1.0
1.0 -2.0 -1.0
40
30
}
if-else 结构
格式:if (表达式) 语句1; else 语句2; 非0(真) 例如 if(x>y) 语句1 printf("%d",x); else printf("%d",y);
31
else不能单独使用,如果 使用,必须与 if 配对
表达式
0(假)
语句2
if-else结构举例
运算符 !(逻辑非) 算术运算符 优先级 (高)
关系运算符 &&和||(逻辑与和逻辑或)
赋值运算符
15
(低)
运算符优先级举例
(a>b)&&(x>y) (a==b)||(x==y) (!a)||(a>b)
a>b&&x>y
a==b||x==y
!a||a>b
16
逻辑表达式及其结果
用逻辑运算符将关系表达式或逻辑量连接 起来的式子,称为逻辑表达式
}
41
if-else if 结构举例
编写一段程序,完成以下任务:
0 0.05 number<=50 50<number<=100 100<number<=300 300<number<=500 number>500
42
cost =
0.075 0.10 0.15
if- else if 结 #include <stdio.h> void main() 构程序举例 { c6_7.c double number,cost;
表达式
0(假)
非0(真)
语句
一个语句
可以有多个 语句
28
if 结构举例
输入两个实数,按代数值由小到大 的顺序输出这两个数 分析问题
假设两个数是a,b 比较两个数的大小 如果a>b,a和b的值互换,之后输出a 和b的值 如果a<b,直接输出a和b的值
29
if 结构 #include <stdio.h> void main() 程序举例 { c6_1.c double a,b,t;