c语言 可选择,C语言-选择结构.doc

clrscr(); /*清屏*/

选择结构

一、单分支选择语句

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.nf(m、n是正整数,通常m>n,

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

n表示小数点右边的位数。)

例如:printf("%6.2f\n",3.14159);

UU3.14(U代表空格)

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

3.1416

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

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

%.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

i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值