程序的三种基本结构
语句可以是复合语句 if如(x:) if(a=if=(xb!&=&0)x==y) printf(“a=b,x=y”);
if(!x) if(3) if(pxr=in=tf0()“OK”); 例 考i虑f(‘下a’)面程pri序ntf的(“输%d出”,结’a’果); :
#include <stdio.h> main() { int x,y;
[例5.2」输入三个数,按由小到大顺序输出。 •main( ) •{int a,b,c,temp; •printf("Input a,b,c:\n"); •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); •}
0(N) 表达式
1(Y) 语句
任给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
( 3 )使用判断——交换法: 1.若a>b,则交换a和b,交换后a<b 2.若a>c,则交换a和c,交换后a<c 3.若b>c,则交换b和c,交换后b<c
scanf(“%d,%d”,&x,&y); if(x>y)
x=y; y=x; else
x++; y++; printf(“%d,%d\n”,x,y); }
Compile Error!
句嵌套
5.1.2 一般形式:
if (expr1) if (expr2) statement1 else statement2
程序的三种基本结构
• 结构化程序设计
• 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) • 结构化程序:由三种基本结构反复嵌套构成的程序叫~ • 优点:结构清晰,易读,提高程序设计质量和效率
• 三种基本结构
• 顺序结构
A
流程图
B
A B
N-S图
二分支选择结构
真
假
P
A
• 运行情况如下: 3,7,1 • 1, 3, 7
•2.双分支选择语句的形式:
•if(表达式) 语句1 else 语句2
•
见图:
main()
真
{ float x , y; scanf(“%f ”, &x);
if ( x < 0 ) y = 3 - x ;
语句1
else y = 2 * x ; printf(“y= %6.2f”, y );
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
#include<stdio.h>
main( )
{ int score;
程序
scanf(“%d”, &score);
statement2
else
if(expr3) statement3
else
statement4
内嵌if
内嵌if 内嵌if
入两数并判断其大小关系
/*ch4_4.c*/ #include <stdio.h> main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
B
真
P
假
A
B
多分支选择结构
k k=k1
k=k2
A1
A2
...
k=kn k=ki
Ai
...
An
循环结构 当型循环结构
假 P
真
A
当P为真 A
直到型循环结构
A
假 P 真
A 直到P为真
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
第5章 选择语句
• 5.1 if 条件语句 • 5.2 switch多分支选择语句 • 5.3 程序举例
}
表达式
假 语句2
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (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 ); }
if (expr1) statement1
else if(expr3) statement3 else statement4
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1)
if (expr2) statement1
else
• 3.多分支选择语句的形式:
• if (表达式1)
语句1
• else if (表达式2)
语句2
•
else if(表达式3)
语句3
•
else if (表达式m)
语句m
•
else
语句n
•
流程图
F
表达式1
T
表达式2
T
表达式3
T
语句1
语句2
语句3
F
表达式4 T
语句4
F 语句5
多分支问题
写一个程序完成下列功能:
返回
5.1 if条件语句
•if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
5.1.1 if语句的三种形式
•1.单分支选择语句的形式: if(表达式) 语句
•
这种if语句的执行过程见图:
main( ) { float x , y;
scanf(“%f ”, &x); if (x>=0) y = 2 * x ; if (x < 0) y = 3 - x ; printf(“y= %6.2f”, y ); }
if ( score<60) printf(“E” );
else if ( score <70)
printf(“D” );
else if (score <80)
printf(“C” );
else if (score <90)
printf(“B” );
else
printf(“A” );
}
说明: if后面的表达式类型任意