C语言-选择结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

clr scr(); /*清屏*/

选择结构

一、单分支选择语句

1. 格式

if(表达式)语句

2. 功能

当表达式的值为非0(真、条件成立)时,执行“语句”。否则执行if之后

的下一句。

3. 说明

(1)表达式可以是任意类型的表达式(结果是数值型),但通常是关系或逻辑表达式。也可以是数值型的常量或变量(它们是最简单的表达式)。

(2)“语句”可以是以分号

结束的单个

语句,也可以是

..

复合语句。不可以是多一个

..

个语句。

4. 举例

例1、任意读入两个整数,然后输出其中的较大者。main()

{int x,y;

scanf("%d%d",&x,&y);

if(x>y)printf("%d\n",x);

if(y>=x)printf("%d\n",y );

}

二、双分支if语句

【格式】

if(表达式)

语句1

else

语句2

【功能】

【说明】

1.“语句1”和“语句2”可以分别是以分号结束的单个语句,也可以分别是一个复合语句。都不可以是多个语

句。

2. else子句不可以独立存在。

改写上例:任意读入2个整数,输出较大数。

main()

{int x,y;

scanf("%d%d",&x,&y); if(x>y)

printf("%d\n",x); else /*暗含两种情况:<和=*/

printf("%d\n",y);

}

例如:任意读入2个整数,按从小到大的顺序输出这2个数。

【法1】

main()

{int x,y;

scanf("%d%d",&x,&y); if(x

printf("%d,%d\n",x,y); else

printf("%d,%d\n",y,x);

}

【法2:借助第三数,完成两数的交换】

让x中放较小数,y中放较大数。

main()

{int x,y;

int t; /*中间变量*/ scanf("%d%d",&x,&y);

if(x>y)

{t=x; x=y; y=t;} printf("%d,%d\n",x,y); }

【基本算法一:两数交换,借助第三数】

t=x; x=y; y=t;

【思考:本题改成“任意读入3数,从小到大输出”】

三、多分支if语句【格式】

if(表达式1)

语句1

else if(表达式2)

语句2

else if(表达式3)

语句3

……

else

语句n+1

【功能】

【注意】else和if之间有空格。

最后的else子句可以省。

【举例】

例1、批发铅笔,批发量x,

100≤x<300,打7折;300≤x<500,打5折;500≤x<1000,打4.5折;x>=1000,打4折。其余不

打折。求顾客应付款。(1元/支)

【法1:多分支选择语句】main()

{int x;

float cost; scanf("%d",&x); if(x>=1000)

cost=1*x*0.4; else if(x>=500)

cost=1*x*0.45; else if(x>=300)

cost=1*x*0.5;

else if(x>=100)

cost=1*x*0.7;

else

cost=1*x;

printf("cost=%f\n",cost );

}

%m.n f(m、n是正整数,

通常m>n,

m表示整个实数所占显示宽度,包含小数点,实数宽度不够时,左补空格;

n表示小数点右边的位数。)例如:printf("%6.2f\n",3.1415 9);

UU3.14(U代表空格)

又如:printf("%3.4f\n",3.1415 9);

3.1416

【注意】%m.nf的格式可以省写成“%.n f”,即可将m 省略。

%-m.n f(若数宽度不够,则右补空格)

%.nf(m可以省,满足小数点后保留n位,该实数实际需要占多少位,就占多少位。)

关于整数:

%md: 输出的整数若位数不足m位,左补空格。

%-md: 输出的整数若位数不足m位,右补空格。

例:任意读入一个年份,判断其是否为闰年。

(能被400整除,或能被4整除且不能被100整除的,就是闰年)

四、if语句的嵌套(if语句中含有另一个if语句)

例1:铅笔打折的改写。main()

{int x;

float cost;

scanf("%d",&x); if(x<100)

cost=1*x;

else

if(x<300)

cost=1*x*0.7;

else

if(x<500)

cost=x*1*0.5;

else

if(x<1000)

cost=1*x*0.45;

else

cost=1*x*0.4; printf("cost=%.2f\n",co

相关文档
最新文档