当前位置:文档之家› 顺序与选择结构

顺序与选择结构

将分号改为逗号则 成为1个语句,可 去掉花括号 24
A B
举例:求分段函数的值
例4.8 根据所输入的x之值,求 y= 用多边if 语句: #include <stdio.h> void main ( ) { float x,y; scanf("%f",&x); if(x<0) y=0; else if(x<=50) y=x; else y=x*x; printf("x=%f,y=%f\n",x,y); }
9
A
B
例4.3 取一个16位的二进制数a的7~4位 。
15 8 7 6 5 4 3 2
了解 1 0
#include <stdio.h> void main() { unsigned a,b,c,d; scanf("%x",&a); b=a>>4; c=~(~0<<4); d=b&c; printf("%x\n%x\n",a,d); }
Y
A A
P P
N
A B
(出口)
13
4.3.1 if 语句
z if 语句是用来判断所给定的条件是否满足, 根据判定的结果(真或假)决定执行给定的某 种操作之一。
A B
14
一、if 语句的形式1—单分支选择结构 z 格式: if (表达式) 语句
执行过程:
Y
语句 语句 (入口)
此处不能 加“;”
表达式 表达式
N
A B
(出口)
举例: if (c>=’A’ && c<=’Z’) c=c+32; 或: if (c>=’A’ && c<=’Z’) c=c+32;
15
二、 if 语句的形式2—双分支选择结构
z 格式: if (表达式) 语句1 else 语句2
语句 11 语句 (出口)
执行过程
(入口)
Y
表达式 表达式
第四章 程序控制结构
主要内容 4.1 C语言的执行语句 4.2 顺序结构 4.3 选择结构 4.4 循环结构 A B
1
4.1 C语言的执行语句
一、表达式语句:表达式; 例如:
a-=a*a; a=b=5*3; i++; x=0,y=1; printf("Hello!"); 赋值语句 赋值语句 自增1语句 逗号表达式语句 函数调用语句
0 (x<0) x (0≤x≤50) x2 (x>50)
这是一个 这是一个 嵌套结构 嵌套结构
A
B
26
四、if 语句的嵌套
在if 在if 语句中又包含一个或多个if 语句中又包含一个或多个if 语句,称为if 语句,称为if 语句的嵌套 语句的嵌套 一般形式: if (条件1 ) if (条件2 ) 语句1 else 语句2 else if (条件3) 语句3 else 语句4
/*以十六进制形式输入a*/ /*使a右移4位存于b*/ /*置c=(1111)2*/ /*b & c得到结果d*/ /*以十六进制形式输出d*/
A B
10
例4.4 求方程ax2+bx+c=0的实数根。 #include <stdio.h> − b ± b 2 − 4ac x= #include <math.h> 2a void main() { float a,b,c,d,x1,x2; printf("Input a,b,c: "); scanf("%f,%f,%f",&a,&b,&c); d=b*b-4*a*c; x1=(-b+sqrt(d))/(2*a); x2=(-b -sqrt(d))/(2*a); printf("x1=%.4f\nx2=%.4f\n",x1,x2); }
11
A B
4.3 选择结构
4.3.1 4.3.2 4.3.3 4.5.4
A B
12
if语句 switch语句 选择结构的嵌套 选择结构程序举例
选择结构
z 选择结构:先判断条件P ,若条件成立,跳过B执 行A操作;若条件不成立,跳过A执行B操作。
传统流程图
(入口)
N-S流程图 P B B Y A B N
if( a<=b) printf("%d,%d\n",a,b); if( a>b) printf("%d,%d\n",b,a); } B
22
A
例4.6 P68解3)#include <stdio.h>
void main( ) { int a,b,t; scanf("%d,%d",&a,&b); if( a>b) { t=a; a=b; b=t; } /*两个变量交换数据*/ printf("%d,%d\n",a,b); 去掉花括号, 去掉花括号, } 会是什么效 会是什么效
•if •if 与 与 else else 的配对关系:从最内层开始, 的配对关系:从最内层开始, else else 总是 总是 与它上面最近的且尚未配对的 与它上面最近的且尚未配对的 if if 配对。 配对。 •为了使逻辑关系清晰,建议采用“分层缩进书写格 •为了使逻辑关系清晰,建议采用“分层缩进书写格 式”。 式”。 27
3 个语句用花括 3 个语句用花括 号括起来构成 号括起来构成1 1 个复合语句 个复合语句 果? 果?
单分支 if 单分支 if (条件判 (条件判 断一次) 断一次)
A B
23
#include <stdio.h> void main( ) { int a,b,t; scanf("%d,%d",&a,&b); if( a>b) t=a; a=b, a=b; b=t; × t=a, printf("%d,%d\n",a,b); }
m4= m/10000; m3=(m-m4*10000L)/1000; m2=(m-m4*10000L-m3*1000)/100; m1=(m-m4*10000L-m3*1000-m2*100)/10; m0= m-m4*10000L-m3*1000-m2*100-m1*10; m0= m%10; m1=(m/10)%10; 若从个位拆起, m2=(m/100)%10; 方法2更好! m3=(m/1000)%10; m4=(m/10000)%10;即m4=m/10000;
双分支 if 双分支 if (条件判 (条件判 断一次) 断一次)
A B
21
例4.6 P69解2) #include <stdio.h>
void main( ) { int a,b,t; scanf("%d,%d",&a,&b);
2 个单分支 2 个单分支 if (条件判 if (条件判 断两次) 断两次)
A B
二、空语句: ;
2
三、复合语句:用一对花括号括起来的一组语句。
{ 语句1 语句2 …… 语句n } A B 说明: 1、复合语句在语法上是一个语 句。 2、一般将复合语句用在语法上是 一个语句而相应操作需多条语句完 成的场合。 3、复合语句内的各条语句都必须 以分号“;”结尾,而右花括号 “}”后面则不能有分号。 4、复合语句又称为分程序, 它 可以有属于自己的数据说明部分。
(出口)
A B
举例: if ( c<’A’ || c>’Z’ ) ; else c=c+32;
17
三、if 语句的形式3—多分支选择结构
z 格式: if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 : : : : else if (表达式n) 语句n N else 语句n+1
0 (x<0) x (0≤x≤50) x2 (x>50)
A B
25
例4.8
y=
另解:用双分支if 语句的嵌套 #include <stdio.h> void main ( ) { float x,y; scanf("%f",&x); if (x>=0) if (x<=50) y=x; else y=x*x; else y=0; printf("x=%f,y=%f\n",x,y); }
6
P63例4.1 输入任意两个整数,求它们的和及平均值 #include <stdio.h> void main() { int num1,num2; int型数之和可能超出int型的表示 范围,故将sum定义为float型 float sum,aver; printf("Please input two integers: \n"); scanf("%d,%d",&num1,&num2); sum=(float)num1+num2; num1强制转换为float型, 以使num1、 num2和为 aver=sum/2.0;
N
语句 22 语句
举例:
if (x>y) printf("%d" ,x); else printf("%d" ,y);
A B
此两 此处 处不 不能 能加 加“;” “;” 16
z 用双边if实现单边选择结构
(入口)
N
语句 语句
表达式 表达式
Y
格式: if (表达式); else 语句
相关主题