C语言-选择结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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