C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt

C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt

ID:51963633

大小:683.00 KB

页数:53页

时间:2020-03-26

C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt_第1页
C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt_第2页
C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt_第3页
C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt_第4页
C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt_第5页
资源描述:

《C语言程序设计教程课件1C语言第4章选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C程序设计-第四章选择结构是根据运行时的情况自动选择要执行的语句。在C语言中,用if语句或switch语句实现选择结构。if语句称作条件语句,switch语句称作分情况语句。如何表示条件,如何使用选择结构制程序流程,是学习本章要掌握的主要内容。第四章选择结构程序设计§4.1if语句先来看这样一个问题,计算分段函数:y=3-xx≤02/xx>0求解问题的流程如下:(1)输入x;(2)如果x<=0则y=3-x;否则y=2/x;(3)输出y的值。显然程序的流程必须由x的值确定。这类程序结构又称为分支结构

2、,分支的依据是根据某个变量或表达式的值做出判定,以决定执行哪些语句和跳过哪些语句。分支流程控制可以用if语句实现。C语言的if语句有3种形式:单分支选择if语句双分支选择if语句多分支选择if语句。单分支if语句单分支选择语句if的形式为:if(表达式)语句执行单分支选择语句时,首先判断表达式的值,若表达式值为非0,则执行表达式后面的语句;若表达式值为0,则不执行表达式后面的语句。控制流程如图4.1所示。图4.1单分支选择结构例4.1输入一个数,如果该数大于等于0,则输出它的平方根,当它小于0,则

3、不做任何处理。分析:(1)输入的数存入变量x;(2)使用选择if(x>=0)。程序:#include#includemain(){doublex;scanf(″%f″,&x),if(x>=0)printf(″%10.6f″,sqrt(x));/*sqrt(x)开平方库函数调用*/}例4.2输入两个整数,求出大的数并输出。#includemain(){inta,b,max;scanf(″%d,%d″,&a,&b);max=b;/*首先假设b为大的一

4、个数*/if(a>b)max=a;/*如果b不为大的一个数,则a是大的一个数*/printf(″%d″,max);}双分支if语句双分支选择语句为if-else,语句的结构形式为:if(表达式)语句1else语句2当表达式值为非0,则执行语句1;当表达式值为0,则执行语句2。控制流程如图4.2所示。图4.2双分支选择结构在例4.1中,若输入的数据大于等于0,输出它的平方根;否则,就输出数据出错信息,用if-else结构形式的选择语句可以实现两种处理的分支。编程如下:#include

5、>#includemain(){doublex;scanf(″%f″,&x);if(x>=0)printf(″%10.6f″,sqrt(x));/*sqrt(x)开平方库函数调用*/elseprintf(″Enterdataerror!″);/*输出数据错误信息*/}例4.3输入两个数,比较其大小,将较大的数输出。在例4.2中,我们用单分支实现过这个程序。现在我们用双分支实现。流程分析:(1)输入两个数据a,b;(2)如果a>b则输出a;否则,输出b。使用if-else选择结构进行

6、双分支,程序设计如下:#includemain(){floata,b;scanf(″%f,%f″,&a,&b);if(a>b)printf(″%f″,a);elseprintf(″%f″,b);}注意:else之前有一分号。如无此分号,则会出现语法错误。多分支选择结构多分支选择结构的if语句形式如下:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;else……if(表达式n)语句n;else语句n+1;执行多分支选择if语句时,如果表达式i

7、的值为非0,则执行语句i,后面的语句再不执行;否则执行else后面的语句。多分支选择的流程图如图4.3所示。图4.3多分支选择的流程例4.4计算分段函数:2*xx≤-10y=2+x-10<x≤0x-20<x≤10x/10x>10分析:此多分支结构可用图4.4所示的流程图表示。图4.4例题4.3的流程图分支选择结构语句如下:if(x<=-10)y=2*x;else/*x>-10*/if(x<=0)/*看x是否小于等于0*/y=2+x;else/*当x>0*/if(x<=10)/*看x是否小于等于10

8、*/y=x-2;else/*x>10*/y=x/10;例4.5输入3个数a,b,c,要求按由小到大的顺序输出。编程如下:#includemain(){inta,b,c,t;scanf(″%d,%d,%d″,&a,&b,&c);if(a>b){t=a;a=b;b=t;}/*实现a和b的互换*/if(a>c){t=a;a=c;c=t;}/*实现a和c的互换*/if(b>c){t=b;b=c;c=t;}/*实现b和c的互换*/printf(″%d,%d,%d″,a,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。