选择结构程序设计举例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 if语句
例5.4:计算分段函数。
输入x X<=1
x 5 x1 y 2x 1 x 10 3 x 10 x 10
假
假
X<10 真 真
y=x+5
y=2x
y=3/(x-10)
第五章 if语句
计 算 分 段 函 #include <stdio.h> 数程序: main() {float x,y;
}
第五章 if语句
注意: ( 1 )当 if 语句中出现多个“ if” 与“ else” 的时 候,要特别注意它们之间的匹配关系,否则就 可能导致程序逻辑错误。“else”与“if”的匹配 原则是“就近一致原则”,即“ else” 总是与它 前面最近的“if”相匹配。 (2)if语句中条件的写法应尽量简单。
选择结构程序设计
一、if语句 二、switch语句 三、选择结构程序设计举例
第五章 目录
问题提出:
解题的步骤:
输入x
计算分段函数:
3-x x≤0 x≤0 2/x x>0 是 否
y=
C语言用来设计条件选择结构 程序的选择语句有两种: if语 句、switch语句。
y=3-x
y=2/x
输出y的值
第五章 提出问题
第五章 if语句
2、双分支选择if语句
语句形式: if (表达式)语句1; else 语句2 ; 例:If(x>y) printf(“%d”,x); else printf(“%d”,y); 假(0) 表达式
真(非0)
语句执行流程:
语句1
语句2
第五章 if语句
注意: if 和 else 语 句 之 间 只 能 有 一 个 语 句 , 当 ifelse之间的语句不只一句时,应用一对{}将语句 括起。 例:if(a>b) {a++;b++;} else {a=0;b=10;} 3、if 语句的缺省形式:if (<表达式>) <语句> 其执行过程时:如果<表达式>的值不为零,执行<语 句>,否则什么也不执行,跳到if语句的下面,继续 执行程序中的其它语句。
第五章 if语句
4、多分支选择if语句
语句形式: if (表达式1)语句1; else if (表达式2)语句2; … … else if (表达式n)语句n; else 语句n+1;
第五章 if语句
语句执行流程:
假(0)
表达式1 真(非0) 语句1 表达式2 真(非0) 语句2 表达式2 语句n 语句n+1 假(0) 假(0)
printf("enter x:");
scanf(" %f ",&x); if(x==10)printf("not define x.\n"); else {if (x<=1) y=x+5; else if(x<10) y=2*x; else y=3/(x-10); printf("x=%f,y=%f\n",x,y); }
输入x,y
x>y 真 max=x
假
max=y
输出最大值 结束
第五章 if语句
执行过程:
{int x,y,max; scanf("%d,%d",&x,&y);
if(x>y)
max=x; else max=y; x=5 y=8 max=6
初Байду номын сангаас化
例5.3:输入三角形的三个边长,求出三角形的面积。 #include ”math.h” main() { float a,b,c; float area,s; /*s为三角形的半周长*/ printf(“请输入三角形的三边a,b,c:”); scanf(“%f%f%f”,&a,&b,&c); if (a+b>c&&a+c>b&&b+c>a) /*判断输入的a,b,c能否构成三角形*/ {s=(a+b+c)/2.0; /*求出三角形的半周长*/ area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“三角形面积area=%f”,area);} }
第五章 if语句
例 5.2 :输入两个整数,输 出其中较大的数。 #include <stdio.h> #include <math.h>
main() {int x,y,max; scanf("%d,%d",&x,&y); if(x>y) max=x; else max=y; printf("max=%d\n",max);}
#include <stdio.h> main() {int a,b,t; scanf("%d,%d",&a,&b); if(a>b) {t=a;a=b;b=t;} printf("a=%d,b=%d\n",a,b);}
输入a,b a>b 真 交换a、b 输出 结束
第五章 if语句
假
注意: (1)if语句自动结合一个语句,当满足条件需要 执行多个语句时,应用一对大括号{}将需要执行的 多个语句括起,形成一个复合语句。 (2)if语句中表达式形式很灵活,可以是常量、变 量、任何类型表达式、函数、指针等。只要表达式 的值为非零值,条件就为真,反之条件为假。
一、if语句
1、if语句的三种形式:单分支选择if语句、双分 支选择if语句、多分支选择if语句。 1)单分支选择if语句 语句形式: if (表达式) 语句; 例:if(x>y)printf(“%d”,x); 语句执行流程:
假(0)
表达式 真(非0) 语句
第五章 if语句
例 5.1 :从键盘输入两个整 数 a和 b,如果a大于b则交换 两数,否则不交换,最后输 出两个数。
假(0)
真(非0) 假(0) 表达式 3
假(0)
else与if的配对原则: 就近一致原则: else 与同 一层最接近它,而又没有 其它 else 语句与之相匹配 的if语句配对。
表达式 2
真(非0) 语句3 语句2 语句4
真(非0) 语句1
第五章 if语句
例5.5:解方程:ax2+bx+c=0。 从代数知识可以知道: ⑴ ⑵ ⑶ 若b2-4ac>0 若b2-4ac=0 若b2-4ac<0 有两个不等的实根 有两个相等的实根 有两个虚根
第五章 if语句
5、if语句的嵌套
语句含义:
if ( 表达式1) 当if语句中又包含若干个if if ( 表达式2) 语句时,则构成了if 语句 语句1; 嵌套的情形。 else 语句2; 语句形式: else if(表达式3) 语句3; else 语句4;
第五章 if语句
语句执行流程:
表达式 1