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语言选择结构

C语言选择结构选择结构是C语言中的一种流程控制结构,用于根据给定的条件选择不同的执行路径。
本文将详细介绍C语言中的选择结构以及其使用。
选择结构主要包括if语句、if-else语句、else if语句和switch 语句。
1. if语句if语句是最简单的选择结构,用于根据给定条件决定是否执行段代码。
其语法结构为:if (condition)//如果条件为真,执行这里的代码其中,condition是一个表达式,如果它的值为真,则执行if语句中的代码块。
if语句也可以与else语句结合使用,使得在条件为假时执行不同的代码块。
2.if-else语句if-else语句是在if语句的基础上增加了一个分支,用于在条件为假时执行另外一段代码。
其语法结构为:if (condition)//如果条件为真,执行这里的代码else//如果条件为假,执行这里的代码如果if语句的条件为真,则执行if语句中的代码块,否则执行else语句中的代码块。
3.else if语句else if语句用于在多个条件之间进行选择,并根据不同的条件执行相应的代码块。
其语法结构为:if (condition1)//如果条件1为真,执行这里的代码else if (condition2)//如果条件1为假,条件2为真,执行这里的代码else//如果条件1和条件2都为假,执行这里的代码在多个else if语句中,只有第一个满足条件的语句会被执行,其他的else if和else语句会被忽略。
4.switch语句switch语句是用来根据不同的取值来执行不同的代码块。
其语法结构为:switch (expression)case constant1:// 如果expression的值等于constant1,执行这里的代码break;case constant2:// 如果expression的值等于constant2,执行这里的代码break;...default:// 如果expression的值与之前的常量都不匹配,执行这里的代码expression 表达式的值会与每个 case 后面的常量进行比较,如果匹配则执行相应的代码块,可以使用 break 语句来跳出 switch 代码块。
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语言(第五章选择结构) 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
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语言程序设计—选择结构

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语言程序设计ppt课件-第3章-选择结构

本章主要内容
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语言选择结构程序设计教案

C语言选择结构程序设计教案一、教学目标1. 理解选择结构的概念和作用。
2. 掌握if语句和switch语句的语法和使用方法。
3. 能够运用选择结构解决实际问题。
二、教学内容1. 选择结构的概念和作用。
2. if语句的语法和使用方法。
3. switch语句的语法和使用方法。
4. 选择结构的嵌套。
三、教学重点与难点1. 重点:if语句和switch语句的语法和使用方法。
2. 难点:选择结构的嵌套和运用。
四、教学方法1. 讲解:讲解选择结构的概念和作用,以及if语句和switch语句的语法和使用方法。
2. 示例:通过示例演示如何使用选择结构解决实际问题。
3. 练习:让学生通过练习掌握选择结构的运用。
五、教学准备1. 教材或教案。
2. 计算机和投影仪。
3. 练习题。
六、教学过程1. 引入:通过一个简单的例子,比如判断一个数的正负,引入选择结构的概念。
2. 讲解:详细讲解if语句和switch语句的语法和使用方法,包括条件表达式和分支语句。
3. 示例:给出一些示例代码,演示如何使用if语句和switch语句来实现不同的选择结构。
4. 练习:让学生编写一些简单的程序,练习使用if语句和switch语句。
七、案例分析1. 案例一:编写一个程序,根据用户输入的年份,判断是平年还是闰年。
2. 案例二:编写一个程序,根据用户输入的分数,判断成绩等级。
八、选择结构的嵌套1. 讲解:讲解选择结构嵌套的概念和作用。
2. 示例:给出一些示例代码,演示如何使用选择结构嵌套来解决更复杂的问题。
3. 练习:让学生编写一些程序,练习使用选择结构嵌套。
九、课堂互动1. 提问:让学生回答关于选择结构的问题,比如if语句和switch语句的区别等。
2. 讨论:让学生分组讨论如何使用选择结构解决实际问题,并展示他们的解决方案。
十、总结与作业1. 总结:总结本节课所学的内容,包括选择结构的概念、if语句和switch语句的语法和使用方法,以及选择结构的嵌套。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
推广,C语言用非零代表"真",用零代表"假"。 if(b)…… →if(b!=0)…… if(a=a+4)…… →a=a+4;if(a!=0)…… if(3)……. →条件恒成立 C语言可能不对整个表达式进行计算。 if (4||a==b)… if(0 && a==b)… 实型变量不能进行相等的比较。 if(pi==3.14)…… if(pi-3.14<1.0e-005 && pi-3.14>-1.0e-005)……
if (表达式) 语句1;
表达式 假 语句1 真
flag=0;
…… if (beta>=0) flag=1;
……
例:输入一个整数 a,判断它是偶数还是奇数?
分析:若 a 是偶数, a % 2==0
#include <stdio.h> void main( ) { int a; printf ("input a number: "); scanf ("%d", &a); if ( a % 2 == 0 ) printf ("%d is an even\n", a); else printf("%d is an odd\n", a); } 注意:该方法只适用于整数。
ge=data%10 输出length length>4
假 真 真
输出wan
假
错误提示
length=5 wan=data/10000 wan=0
假 真
顺 序 输 出
length>3
假
输出qian
输出bai 输出shi
length>2
假
真
真
length>1 length-输出ge 输出ge
真
qian=data%10000/1000 qian=0且length=4
注意:
1. else 语句不能单独出现,必须与if 配对出现,采用就近配对原则; 2. 第二个if语句是第一个if 语句的"语句1",为明显区分,建议加括号。
例:输入年份,判断是否是闰年
闰年的条件: 1. 年份能被400整除; 2. 年份能被4整除但不能被100整除;
#include <stdio.h> void main ( ) { int year,flag; printf ( "Which year ? "); scanf ("%d",&year); 真 if ( year % 400 == 0 ) flag = 1; else { if ( year % 4 == 0 && year % 100 != 0flag=1 ) flag = 1; else flag = 0; } if ( flag == 1 ) printf ("%d年是闰年\n",year); else printf ("%d年不是闰年\n",year); }
beta>=0?
Y
N
计算x1
x1=-9999
N
beta>=0?
Y
计算x2
N
x2=-9999
Y
beta>=0?
输出无解 结束
输出计算结果
#include <stdio.h> #include <math.h> main() { float a,b,c,x1,x2,beta; scanf("a=%f,b=%f,c=%f",&a,&b,&c); beta=b*b-4.0*a*c; if (beta>=0) x1=(-b+sqrt(flag*beta))/(2.0*a); else x1=-9999; if (beta>=0) x2=(-b-sqrt(flag*beta))/(2.0*a); else x2=-9999; printf("x1=%8.3f\n",x1); if (beta>=0) printf("x2=%8.3f\n",x2); printf("results=%8.3f,%8.3f",x1,x2); } else
2)比较 d 和圆半径 r 的大小
输出结果 结束
#include <stdio.h> #include <math.h> void main() { float x, y, d,r; int key; printf ("input x, y,r: "); scanf ("%f,%f", &x, &y,&r); d = sqrt ( x * x + y * y ); if ( d >= r ) if (d==r) key=1; // 在圆上 else key=2; /*在圆外*/ else key = 0; // 在圆内 printf ("(%.1f, %.1f ) : %d\n", x, y, key); }
printf("beta<0,can't be treated");
}
条件表达式
关系表达式
关系运算符 > >= 含义 大于(>) 大于等于(≥) 优先级
<
<= == !=
小于(<)
小于等于(≤) 等于(=) 不等于(≠)
高
低
关系表达式有具体的计算结果:条件满足时为"真",条件不满足时为"假"。 if 语句在计算条件表达式后,若结果为"真"则执行“语句1”,若结果为"假 "则执行“语句2”。 例: if (a>0) p++; else m++; if (x<=3.0) ok=1; else ok=0; if (x1!=x2) equal=1; else equal=0; if (-3<x<3) action=1; else action=0;
开始 从键盘输入year 假 真
条件一? 假
条件二?
flag=1
flag=0
输出结果 结束
例:给一个不多于5位的正整数:
① 求出它是几位数; ② 分别输出每一位数字; ③ 按逆序输出各位数字。
开始 从键盘输入data data≤99999并且data>0
真
shi=0且length=2
假
真
length--
假
作业:编写完整的程序,由键盘输入4个数,按由大到小的顺序排列并输出结果。
if 语句的嵌套
if ( 表达式1 ) if ( 表达式2 ) 语句1 else 语句2 else if ( 表达式3 ) 语句3 else 语句4
基本if语句:
if (表达式) 语句1 else 语句2
else 与最近的 if 匹配!!
将多条语句用{ }包含起来,可以出现在任何允许出现单个 语句的地方。 例:输入3个数,按由大到小排列。 if (a<b)
{
真 a<b? 假 真 a<c? 假 真 b<c? 交换b,c 交换a,c 交换a,b
t=a; a=b; b=t; } if (a<c) { t=a; a=c; c=t; } if (b<c) { t=b; b=c; c=t; }
例:设平面上一点M,其坐标为(x, y),若M落在圆心 在坐标原点的半径为r的圆上,则置 key = 1, 落在圆 外置 key = 2,落在圆内置 key = 0。
y
开始
M(x,y)
r
0 x
从键盘输入x,y 计算d
真
d≥r?
假
假
分析:
d=r?
真
key=1
key=0 key=2
1)求点 M 到原点的距离 d
注意事项:
优先级
! (非 ) 高 a=b>c → a=(b>c) c>a+b → c>(a+b) a>b==c → (a>b)==c a==b<c → a==(b<c)
算数运算符
关系运算符 &&、| | = (赋值) 低
!a>b- 4 → (!a)>(b-4) a=!b>5&&!c<d||'c'+3>d → a=(!b>5)&&(!c<d)||('c'+3>d) 写出: f ( x)
C语言程序设计
选择结构
什么是选择结构?
根据所指定的条件是否满足,决定从给定的两组操作中选 择其一。 选择结构是程序智能化的基础。 C语言的选择结构语法: if ( 条件表达式 ) 语句1 else 语句2 解释:如果条件满足则执行“语句1”,否则执行“语句2”。 注意:
① 当条件满足时,只执行“语句1”,不执行“语句2”;反之亦然; ② “语句1”和“语句2”都需要有分号作为结束标志; ③ “语句2”后面的分号同时也是if 语句的结束标志。
?
条件表达式
逻辑表达式
用于将多个关系表达式串起来表示更复杂的条件。
逻辑运算符 && || ! 条件a 真 真 假 假 条件b 真 假 真 假 !a 假 假 真 真 含义 与(AND) 或(OR) 非(NOT) !b 假 真 假 真 a&&b 真 假 假 假 a||b 真 真 真 假
例: if (x>-3 && x<3) action=1; else action=0;