分支结构(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章分支结构
教学目的和要求:学会使用合适的表达式描述问题,掌握分支结构程序设计的方法,掌握利用分支结构进行程序设计。
教学重难点:IF 、SWITCH、分支嵌套语句
课时安排:4+2(上机)
教学内容:
§3.1 选择结构
一、单分支选择结构
(A)(B)
二、多分支选择结构
三、选择语句
1、if 语句
If 语句的三种形式
A、if 表达式语句
B、if 表达式语句1 else 语句2
C、if 表达式1 语句1
else if 表达式2 语句2
else if 表达式3 语句3
……
else 语句n
2、switch语句
形式:
switch (表达式)
{case 常量表达式1:语句1 ;
break ;
case 常量表达式2:语句2;
break ;
case 常量表达式3:语句3;
break ;
……
case 常量表达式n:语句n;
break ;
default :语句n+1
}
说明:
1、switch 后面的表达式可以是整型或字符型,也可以是枚举型
2、当表达式的值与某一个case后面的常量表达式相等时,就执行此case语句后
面的语句,若所有的case 中的常量表达式的值都没有与表达式的值匹配的,
就执行default后面的语句。
3、break 语句是跳转语句,直接跳出switch语句外。
可以没有该语句
4、多个case语句可以共用一组执行语句
switch(grade)
…
case ‘a’:
case ‘b’:
case ‘c’: printf( “>60\n”);break;
…
例2、求一个整数的绝对值
main( )
{
int a,absa;
printf(“enter one number:”);
scanf (“%d”,&a);
if a<0
absa=-a;
absa=a;
printf(“|%d|=%d”,absa);
}
例3、求解一元二次方程ax2+bx+c=0的根。
# include “math.h”
main ( )
{
float a,b,c,d,x1,x2
scanf (“%f%f%f”,&a,&b,&c);
if (a!=0)
{d=b*b-4*a*c;
if d>=0
{
x1= (-b+sqrt(d))/(2*a);
x2=( -b-sqrt(d))/(2*a);
printf(“x1=%f,x2=%f\n”,x1,x2);
}
else
{
re=-b/(2*a);
im=sqrt(-d)/(2*a);
printf (“re=%f,im=%f I\n”,re,im);
}
}
}
例4、运输公司对用户计算运费,根据距离(s)收费标准如下:
s<250 没有折扣
250<=s<500 2%折扣
500<=s<1000 5%折扣
1000<=s<2000 8%折扣
2000<=s<3000 10%折扣
3000<=s 15%折扣
设每公里运费为P(PRICE),重量W,距离S,折扣D,总运费F=P*W*S*(1-D)
main( )
{
int c,s;
float p,w,d,f ;
scanf (%d%f%f”,&s,&p,&w);
if (s>=3000) c=12;
else c=s/250;
switch(c);
{
case 0 : d=0;break;
case 1 : d=2;break;
caes 2:
case 3: d=5;break;
case 4:
case 5:
case 6:
case 7: d=8;break;
case 8:
case 9:
case 10:
case 11: d=10;break;
case 12: d=12;break;
}
f=p*w*s*(1-d/100.0);
printf(“freight=%15.2f”,f);
}。