程序的三种基本结构PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
7
• 1, 3, 7
•2.双分支选择语句的形式:
•if(表达式) 语句1 else 语句2
•
见图:
main() { float x , y;
scanf(“%f ”, &x); if ( x < 0 ) y = 3 - x ; else y = 2 * x ; printf(“y= %6.2f”, y ); }
.
9
• 3.多分支选择语句的形式:
• if (表达式1)
语句1
• else if (表达式2)
语句2
•
else if(表达式3)
语句3
•
else if (表达式m)
语句m
•
else
语句n
•
流程图
F
表达式
1 T
F
表达式
2 T
F
表达式
3 T
F
表达式
4 T
语句1
语句2
语句3
.
语句4
语句5
10
多分支问题
程序
scanf(“%d”, &score);
if ( score<60) printf(“E” );
else if ( score <70)
printf(“D” );
else if (score <80)
printf(“C” );
else if (score <90)
printf(“B” );
else
0(N) 表达式
1(Y)
if (x < 0) y = 3 - x ;
语句
printf(“y= %6.2f”, y );
.
5
}
任给a,b,c三个数,按从小到大的顺序输出。
分析: (1)对于a,b任意两个数:
若a<b,则输出 a , b ; 否则输出 b , a ;
( 2 ) 对于三个数,有6种可能: a<b<c a<c<b b<a<c b<c<a c<a<b c<b<a
程序的三种基本结构
– 结构化程序设计
• 基本思想:任何程序都可以用三种基本结构表示,限 制使用无条件转移语句(goto)
• 结构化程序:由三种基本结构反复嵌套构成的程序叫 ~
• 优点:结构清晰,易读,提高程序设计质量和效率
– 三种基本结构
• 顺序结构
A
流程图
B
A B
N-S图
.
1
选择结构
真wenku.baidu.com
假
P
二分支选择结构 A
真 语句1
.
假 表达式
语句2
8
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (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 ); }
B
真 P假 AB
多分支选择结构
k=k1 k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
.
2
循环结构 当型循环结构
假 P
真 A
当P为真 A
直到型循环结构
A
假 P 真
A 直到P为真
注:A,B,A1….An可以是一个简.单语句,也可以是一个基本结3构
第5章 选择语句
• 5.1 if 条件语句 • 5.2 switch多分支选择语句 • 5.3 程序举例
写一个程序完成下列功能:
1. 输入一个分数score
2 .score<60
输出 E
3 .60<=score <70 输出 D
4. 70<=score <80 输出 C
5 .80<=score <90 输出 B
6 .90<=score
输出 A
.
11
#include<stdio.h>
main( )
{ int score;
( 3 )使用判断——交换法:
1.若a>b,则交换a和b,交换后a<b
2.若a>c,则交换a和c,交换后a<c
3.若b>c,则交换b和c,交.换后b<c
6
[例5.2」输入三个数,按由小到大顺序输出。
•main( )
•{int a,b,c,temp;
•printf("Input a,b,c:\n");
.
返4回
5.1 if条件语句
•if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定 执行给出的两种操作之一。
5.1.1 if语句的三种形式
•1.单分支选择语句的形式: if(表达式) 语句
•
main( )
这种if语句的执行过程见图:
{ float x , y; scanf(“%f ”, &x); if (x>=0) y = 2 * x ;
printf(“A” );
}
.
12
说明: 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’果); :
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
.
14
例 输入两数并判断其大小关系
/*ch4_4.c*/
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
#include <stdio.h>
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y; y=x; else
Compile Error!
x++; y++;
printf(“%d,%d\n”,x,y);
}
.
13
5.1.2 if语句嵌套
一般形式:
if (expr1) if (expr2) statement1 else statement2
•scanf("%d,%d,%d",&a,&b,&c);
•if(a>b)
• {temp=a;a=b;b=temp;}
•if(a>c)
• {temp=a;a=c;c=temp;}
•if(b>c)
• {temp=b;b=c;c=temp;}
•printf("%d,%d,%d",a,b,c);
•}
• 运行情况如下: 3,7,1
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
内嵌if
if (expr1)
if (expr2) else
statement1 statement2