欢迎来到天天文库
浏览记录
ID:59494944
大小:2.00 MB
页数:36页
时间:2020-09-13
《第07章分支结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章分支结构7.1分支结构概述7.2if语句7.3多分支结构7.4单分支结构7.5语句标号和goto语句7.6综合程序举例目录分支结构的概念:根据给定条件是否成立而决定执行不同步骤的算法结构。基本模式:双分支结构和单分支结构。执行到分支结构时,在两条可能的路径中,根据条件是否成立而选择其中一条执行。7.1分支结构概述双分支结构单分支结构在现实生活中,需要进行判断和选择的情况是很多的,例如:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。如果考试不及格,要补考如果遇到红灯,要停车等待身高低于1.3的儿童乘地铁免票7.1分支结构概述7.2if语句C语言
2、的if语句有以下两种基本形式:(1)if(表达式)语句(2)if(表达式)语句1else语句2/*含else子句的if语句*//*不含else子句的if语句*/7.2.1if语句if(表达式)语句【例7-1】输入两个数,分别放入x和y中,要求输出其中的大数。7.2.1if语句#includemain(){intx,y,max;printf("Enterx&y:");scanf("%d%d",&x,&y);printf("x=%d,y=%d",x,y);max=x;if(x3、】以上程序求两个数的最大值,那么求三个数或更多数的最大值呢?也可以用此类方法即打擂法:先找出任一人站在台上,第2人上去与之比武,胜者留在台上第3人与台上的人比武,胜者留台上,败者下台以后每一个人都是与当时留在台上的人比武,直到所有人都上台比为止,最后留在台上的是冠军。此处max中的值为擂主。练习:输入三个不相等的数a,b,c,将最大数赋值给变量max并输出。7.2.1if语句【例7-2】输入三个整数,分别放在变量a、b和c中,然后把输入的数据重新按由小到大的顺序放在变量a、b和c中,最后输出a、b和c中的值。【问题分析】先将a和b进行比较,若a>b则将a与b进行值交换,4、使得a值为a和b中的较小值;接着将a和c进行比较,若a>c则将a与c进行值交换,此时使得a值为a、b和c中的最小值;最后将b和c进行比较,若b>c则将b与c进行值交换,此时使得b值为b和c中的较小值,且c值为最大值。7.2.1if语句7.2.1if语句#includevoidmain(){inta,b,c,t;printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}i5、f(b>c){t=b;b=c;c=t;}printf("%d,%d,%d",a,b,c);}【程序分析】以上程序无论给a、b和c输入什么数,最后总是把最小数放在a中,把最大数放在c中。当然,此题稍做变化,如不改变输入a、b、c的值,而通过改变输出的a、b、c的顺序来实现对输入数据的有序输出;请自行考虑,并编程实现。7.2.2if…else语句if(表达式)语句1else语句2【注意】else不是一条独立的语句,它只是if语句的一部分。在程序中else必须与if配对,共同组成一条if…else语句。【例7-3】输入一个数,判别它是否能被3整除。若能被3整除,输出YES6、;不能被3整除,输出NO。7.2.2if…else语句#includemain(){intn;printf("inputn:");scanf("%d",&n);if(n%3==0)/*判断n能否被3整除*/printf("n==%dYES",n);elseprintf("n==%dNO",n);}7.3多分支结构双分支结构:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。7.3.1嵌套的if语句if子句和else子句中可以是任意合法的C语句,因此当然也可以是if语句,通常称此为嵌套的if语句。内嵌的if语句既可以嵌套在if子7、句中,也可以嵌套在else子句中。具体形式有以下三种:在if子句中嵌套具有else子句的if语句if(表达式1)if(表达式2)语句1else语句2else语句3在if子句中嵌套不含else子句的if语句if(表达式1){if(表达式2)语句1}else语句2【注意】在if子句中的一对花括号不可缺少。因为C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。因此,以上语句如果写成:if(表达式1)if(表达式2)语句1else语句2if(表达式1)if(表达式2)语句1else语句2实质上等价于7.3.1
3、】以上程序求两个数的最大值,那么求三个数或更多数的最大值呢?也可以用此类方法即打擂法:先找出任一人站在台上,第2人上去与之比武,胜者留在台上第3人与台上的人比武,胜者留台上,败者下台以后每一个人都是与当时留在台上的人比武,直到所有人都上台比为止,最后留在台上的是冠军。此处max中的值为擂主。练习:输入三个不相等的数a,b,c,将最大数赋值给变量max并输出。7.2.1if语句【例7-2】输入三个整数,分别放在变量a、b和c中,然后把输入的数据重新按由小到大的顺序放在变量a、b和c中,最后输出a、b和c中的值。【问题分析】先将a和b进行比较,若a>b则将a与b进行值交换,
4、使得a值为a和b中的较小值;接着将a和c进行比较,若a>c则将a与c进行值交换,此时使得a值为a、b和c中的最小值;最后将b和c进行比较,若b>c则将b与c进行值交换,此时使得b值为b和c中的较小值,且c值为最大值。7.2.1if语句7.2.1if语句#includevoidmain(){inta,b,c,t;printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}i
5、f(b>c){t=b;b=c;c=t;}printf("%d,%d,%d",a,b,c);}【程序分析】以上程序无论给a、b和c输入什么数,最后总是把最小数放在a中,把最大数放在c中。当然,此题稍做变化,如不改变输入a、b、c的值,而通过改变输出的a、b、c的顺序来实现对输入数据的有序输出;请自行考虑,并编程实现。7.2.2if…else语句if(表达式)语句1else语句2【注意】else不是一条独立的语句,它只是if语句的一部分。在程序中else必须与if配对,共同组成一条if…else语句。【例7-3】输入一个数,判别它是否能被3整除。若能被3整除,输出YES
6、;不能被3整除,输出NO。7.2.2if…else语句#includemain(){intn;printf("inputn:");scanf("%d",&n);if(n%3==0)/*判断n能否被3整除*/printf("n==%dYES",n);elseprintf("n==%dNO",n);}7.3多分支结构双分支结构:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。7.3.1嵌套的if语句if子句和else子句中可以是任意合法的C语句,因此当然也可以是if语句,通常称此为嵌套的if语句。内嵌的if语句既可以嵌套在if子
7、句中,也可以嵌套在else子句中。具体形式有以下三种:在if子句中嵌套具有else子句的if语句if(表达式1)if(表达式2)语句1else语句2else语句3在if子句中嵌套不含else子句的if语句if(表达式1){if(表达式2)语句1}else语句2【注意】在if子句中的一对花括号不可缺少。因为C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。因此,以上语句如果写成:if(表达式1)if(表达式2)语句1else语句2if(表达式1)if(表达式2)语句1else语句2实质上等价于7.3.1
此文档下载收益归作者所有