您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 从零开始学C语言(三).pdf.pdf
  所属分类: 其它
  开发工具:
  文件大小: 7mb
  下载次数: 0
  上传时间: 2019-09-13
  提 供 者: weixin_********
 详细说明:从零开始学C语言(三).pdfpdf,从零开始学C语言(三).pdf第7章顺序结构与选择结构‖93 编写程序如下: #inc1ude #include /*添加数学函数所需头文件* void main() float a,b, c,lhl s printf("请输入能组成三角形的三条边:n"); /*输出提示文字* canf("sf, f, sf"r&a,&b,&c) /*输入a、b、c的值* /*输出a、b、c的值*/ 计算三条边的和* h1=1/2; /*为h赋值* s=sqrt(h1*(h1-a)*(h1-b)*(h1-c)); 计算三角形的面积* printf("三角形的周长和面积分别为:\n”); /*输出面积的值 printf("1=号4.2E,=号4,2f,1,); /*输出1和s的值* 程序运行时,输入: 3,4,5 屏幕上输出的结果为 a=3,000000,b=4,000000,c=5.000000 三角形的周长和面积分别为: 1=12.00,s=6.00 该程序在执行过程中,首先输出提示信息:“请输入能组成三角形的三条边:”,然后根据要 求输入,再输出三条边的大小。 先求三角形周长,再求半周长,利用海伦公式求出三角形面积,最后输出三角形的周长和 面积。 程序的执行流程如图7-3所示。 开始 输入a、b、c 开始 输出a 输出三边信息 输出b 求三角形周长 输出c 求三角形半周长 输出d 求三角形面积 输出e 输出三角形周长和面积 结束 结束 图72程序的执行顺序图 图7-3程序执行流程图 【实例7-3】编写程序实现:学习成绩>=90分的同学用A表示,60~89分之间的用B表 示,60分以下的用C表示。 #include void main( int score char grade; 94 从零开始学c语管 printf("please input a score\n"); scanf("a",&score)i grade=score>=90?A:(score>=60?B:'C); printf ("a belongs to sc\n", score, grade): 程序运行的结果为 please input a score: 50′ 50 belongs to c 72)选择结构程序设计 由于顺序结构程序是顺序执行的,无分支、无转移、无循环,因此它不可能处理复杂的问 题,而在数据处理过程中,通常需要根据不同的条件进行判断,然后选择程序进行处理,由此 可见,顺序结构无法满足要求,而选择结构就是为了解决这类问题而设定的。 一般而言,C语言中选择语句包括两种:i语句和 switch语句。所谓选择语句,就是通过 判断条件来选择执行哪一条语句,进而达到编程目的。 72.1i语句 if语句又称为条件语句,可以实现多路分支。C语言中,if语句一般格式如下: if(条件1 语句1 else if(条件2) 语句2 else if(条件3) 语句3 else if(条件m) 语句m else 语句m+1 其中,<条件1>,<条件2>,<条件3>…<条件m>表示i语句的条件表达式,用来判断执 行哪一条语句。在执行语句时,先对条件表达式求解,然后根据结果执行指定语句。这里条 件表达式可以是逻辑表达式、关系表达式等。 个判断条件的结果只有两种可能:条件成立与不成立。在许多高级语言中,都用逻辑值 “真”表示条件成立;用逻辑值“假”表示条件不成立。在C语言中,没有专门的逻辑值,而是 借助于非0值代表“真”,0值代表“假”。只要条件表达式的值为非0,if条件就成立,执行其 后面的语句。例如: int y=0 if(a) 第7章顺序结构与选择结构95 y=4;/*如果为真,y值为4*/ e⊥se y=5;/*否则,y值为5*/ 这段代码执行后,y的值为4,因为字符“a”的ASCⅡ值为97,if的条件表达式是一个非 0值。 语句1,语句2,语句3…语句m+1是i语句的执行语句,可以是一条语句,也可以是复合 语句。注意,每条语句的后面都以分号结尾。 在实际应用中,我们很少用到这么多条件。当条件足够多时,我们往往会选择 switch语句, 这将在下一节中进行详细讲解。 1.常用的近语句格式 通常在运用的过程中,if分支语句有几种常用的格式 格式 if语句最简单的格式是没有ele,只有if关键字。格式如下: if<条件>语句 这种语句的执行过程是,<条件>所给出的表达式为真时,执行 语句;当<条件>所给出的表达式为假时,不执行话句,即直接跳过if 语句,执行程序下面的语句。程序执行流程如图7-4所示。 表达式 例如:输出两个数的最大值: if(asb) 语句 a=b; printf("a=td\n",a); 【实例74】输入三个数,要求按由小到大的顺序输出。 图7-4i语句的执行流程图 #include void main() float a, b, c, t i scant《"f,暑f,告f”,a,b,&C) /*输入三个数 if(a>b) /*使a的值小于b的值* 七 =ai a=b bat if(a>c) /*使a的值小于c的值* t=ai a=ci c=ti if(b>c) /*使b的值小于c的值* 七=b b=C: c=ti printf("暑5,2f,暑5.2f,暑5.2f,a,b,c);/★将三个数按从小到大的顺序输出/ 96 m从零开始学C语 格式二: 程序中应用最多的if语句是两路分支,它的基本格式如下: if(条件1) 语句1 else 语句2 该种形式的功能与简单if语句相似,首先判断条件,当<条件1>所给出的表达式为真时, 执行语句1,否则执行语句2。程序执行流程如图7-5所示。 【实例7-5】输入三个数,输出这三个数中的最大数。 程序分析:求最大数,我们可以先两两比较,先比 较第一个和第二个数。并把两个数中较大的数存入变量L语向1 表达式 语句2 max中。然后再比较max和第三个数的大小,如果第三 个数大于max,那就把第三个数存入max中,最后输出 max的值。 图7-5if语句的执行流程图 按照此思想编写的程序如下: #inc1ude void main() fl。ata,b,c,max; 定义所需变量 scant("暑f,,暑f",&a,&b,&e) /*输入a、b、c的值* /*判断a与b的大小★/ if(a>b) Inax=ai else max=b; /*将a、b中的最大值与c进行比较* if(max 开始 void main( float,y 输入x printf("输入数x:n"); scanf("gf",&x)i /*输入*f if (x<=1) x≤1 Y /*计算←f -r 10 } e⊥se y=2x1 y=3x-11 【if(1 void main( char C: 第7章顺序结构与选择结构99 nt letters=0, space=O, digit=0, others=0; /*定义四个整型变量分别用来计算英文字母、空格、数字和其他字符的个数* printf("please input some characters: \n"); while((cagetchar())!='\n' if(c>='a&c<=z·c>=·A!C<=”2”)/*如果为英文字母变量,1 etters加1* letters++ e1seif(c=='·) /*如果为空格变量, space加1*/ space+十 else if(c>=·0·&&c<=!9·) /*如果为数字变量, digit加1* digit++ else /*如果为其他变量, others加1* others++i printf("all in all: char=d space=d digit=d others=d\n",letters y pace, digit, others); 程序的运行结果为: please input some characters: 2008 olympic games all in all: char=12 space=2 digit=4 others=0 72.2 switch语句 if语句一般用于处理一个或两个分支的选择结构,如果分支较多,就需要使用ⅱ语句的嵌 套,但嵌套的ⅱ语句层数越多,程序越复杂,可读性就越差。C语句提供的 switch语句能同时 处理多个分支选择结构。其语法格式为: switch(表达式 case常量1;语句组1 case常量2:语句组2 case常量n:语句组n default:语句组n+1 switch语句在执行过程中,首先计算表达式的值,当表达式的 值与某一个case后面的常量表达式的值相等、相匹配时,就去执 表达式 行此case后面的语句。如果所有的case中的常量表达式的值都与 “表达式”的值都不相匹配,就执行deut(默认)后面的话句。<量)>语句组 口swh后面括号内的“表达式”可以是任何类型的数据。<量2/ 这里要说明的是: N 语句组2 可以是整型表达式、字符型表达式,也可以是枚举类型 数据。 <常量n 语句组n 口每个case的常量表达式的值必须互不相同,否则会产生 错误的选择。 语句组n+1 口各个case和 default的出现次序不影响执行的结果。 图7-8 switch语句执行流程图 口在执行 switch语句时,根据 switch后面表达式的值找到 匹配的入口标号,执行完该case语句后,继续执行下一个case语句,不再进行标号判 断。case常量表达式只起到入口标示的作用。 【实例7-8】输入考试成绩的等级,打印出百分制分数段(A等:85分以上,B等:70 84,C等:60~69,D等:60分以下)。 100删从零开始学c语 #include yoid main(c) char grade; /*定义一个字符型变量*f scant("c",&grade)i /*输入一个字符型的值* switch(grade) /*判读输入的值* case A: printf("85-100\n"); case B printf("70~84\n"); case 'c' printf(60-69\n") case Di printf("<60\n")i default printf("Error \n") 程序运行时,当输入:A 程序运行的结果为: 85~100 70~84 60~69 <60 Error 程序运行时,当输入:B 程序运行的结果为: 70-84 60-69 <60 Error 程序运行时,当输入:C 程序运行的结果为: 60~69 60 Error 程序运行时,当输入:D∠ 程序运行的结果为: <60 Error 程序运行时,当输入:E4 程序运行的结果为: Error 从上面的运行结果可以看出,当 switch后面圆括号中表达式的值与某个cae后面的常量表 达式的值相等时,就执行此case后面的语句,然后自动进入下一个case语句继续执行。如果这 样执行,会得到一些我们不需要的结果,为了解决这个问题,需要使用 break语句,执行一个 case后,跳出 switch语句。一般形式为 switch(表达式)
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: