C语言程序设计基础教程:选择结构
一、 选择结构
1、 简介:所解决的是判断问题,根据判断结果执行相应的操作,相当于汉语中
的“如果……,就……,否则……”
在C语言中,选择结构主要有两种:
if……else……
Switch
2、 if……else……结构
基本形式:if(exp1)
{……op1……}
else
{……op2……}
执行逻辑:如果exp1为真,则执行op1,否则执行op2
exp1:可以是算术、关系、逻辑运算表达式;
op1、op2:可以是多条语句,放在{}里
扩展形式:
(1) if(……)
{ …… }
(2) if(……)
{ …… }
else if (……)
{ …… }
else if (……)
{ …… }
else
{……}
(3) if(……)
{ if(……)
{……}
else
{……}
}
else
{
if(……)
{……}
else
{……}
}
3、 Switch结构
4、 实例1——if……else结构练习
main()
{
char sex; ----------------------------------声明字符型变量,用来接受输入的性别
printf(“Please input your sex(M or F):\n”);-------------------输入提示
scanf(“%c”,&sex); ---------------------输入语句,将输入的字母赋给sex
if(sex = =’M’ || sex= =”m”) -----------------判定sex是否等于M或m
{
printf(“A boy!\n”); ---------------如果sex等于M或m,就执行
}
else
{
printf(“A girl!\n”); ----------------如果sex不等于M或m,则执行本条
}
}
5、 实例2——if……else 扩展形式练习
要求:输入分数,输出等级
90-100 A ;80-89 B; 70-79 C;60-69 D;60以下 E
main()
{
int score;
char grade;
printf (“Input score:\n”);
scanf(“%d”,&score);
if(score>=90)
{grade=’A’;}
else if(score<=89 && score>=80)
{grade=’B’;}
else if(score<=79 && score>=70)
{grade=’C’;}
else if(score<=69 && score>=60)
{grade=’D’;}
else
{grade=’E’;}
printf(“score=%d,grade=%c”,score,grade);
}
6、 实例练习3——if……else 输入5个数字,找出最大值和最小值并输出
算法设计:
从以下5个数12,3,9,21,4中找出最大值max和最小值min
第一步:max=12 min=12
第二步:max、min和第二个数3作比较
如果第二个数大于max,说明max应为第二个数,否则不变
如果第二个数小于min,说明min应为第二个数,否则不变
3和max、min(12,12)比较:max=12 min=3
第三步:max、min和第三个数9作比较
如果第三个数大于max,说明max应为第三个数,否则不变
如果第三个数小于min,说明min应为第三个数,否则不变
9和max、min(12,3)比较:max=12 min=3
第四步:max、min和第四个数21作比较
如果第四个数大于max,说明max应为第四个数,否则不变
如果第四个数小于min,说明min应为第四个数,否则不变
21和max、min(21,3)比较:max=21 min=3
第五步:max、min和第五个数4作比较
如果第五个数大于max,说明max应为第五个数,否则不变
如果第五个数小于min,说明min应为第五个数,否则不变
4和max、min(21,3)比较:max=21 min=3
第六步:输出结果
max=21 min=3
源代码:
main()
{
int x1,x2,x3,x4,x5,min,max;
printf("Number 1:\n"); /* 第一步 */
scanf("%d",&x1);
max=min=x1;
printf("Number 2:\n"); /*第二步*/
scanf("%d",&x2);
if(x2>max)
{max=x2;}
if(x2 {min=x2;} printf("Number 3:\n"); /*第三步*/ scanf("%d",&x3); if(x3>max) {max=x3;} if(x3 {min=x3;} printf("Number 4:\n"); /*第四步*/ scanf("%d",&x4); if(x4>max) {max=x4;} if(x4 {min=x4;} printf("Number 5:\n"); /*第五步*/ scanf("%d",&x5); if(x5>max) {max=x5;} if(x5 {min=x5;} printf("Max=%d\tMin=%d",max,min); /*第六步*/ getch(); }