第4章C语言顺序和选择结构程序设计_第1页
第4章C语言顺序和选择结构程序设计_第2页
第4章C语言顺序和选择结构程序设计_第3页
第4章C语言顺序和选择结构程序设计_第4页
第4章C语言顺序和选择结构程序设计_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章顺序和选择结构程序设计4.1C语句概述4.2算法基本知识4.3顺序结构程序设计4.4关系运算与逻辑运算4.5if语句4.6if语句的嵌套4.7条件运算符4.8switch语句4.9选择结构程序设计举例本章小结2/4/202314.1C语句概述C语言是通过语句向计算机系统发出操作指令的。C语句可以分为以下5类:1.表达式语句即由一个表达式构成的语句。在一个表达式后面加上分号就可以构成一个表达式语句。A=3;任何表达式后都可以加分号成为语句:i++;x+y;将几个表达式组合在一起,形成一条复合表达式语句: i=1,j=2,k=i+j;

2/4/202324.1C语句概述2.函数调用语句即由一次函数调用加上一个分号构成的一个语句。printf("ThisisaCprogram.\n");

3.空语句即只有一个分号的语句。;什么作用?for(i=0;i<100;i++){

;

}2/4/202334.1C语句概述4.复合语句由一对大括号括起来若干条语句,在语法上可以将它们理解为一条复合语句。 { t=a;a=b;b=t; } 如果去掉大括号,则 t=a;a=b;b=t;为3条赋值语句。 如果将前2个分号改为逗号,则 t=a,a=b,b=t;为1条复合赋值语句。2/4/202344.1C语句概述5.流程控制语句。是C语言中规定的实现流程控制的语句。C语言中共有9种流程控制语句,它们是:if()~else~ (条件语句)for()~ (循环语句)while()~ (循环语句)do~while() (循环语句)continue (结束本次循环)break (中止执行switch或循环语句)switch (多分支选择语句)goto (无条件转向语句)return (从函数返回语句)2/4/202354.2算法基本知识算法是解决某一问题的方法和步骤。程序实际上就是用计算机语言描述的算法。一.算法的特性和要素1.算法的特性:有穷性可行性确定性输入,一个算法可以有0个或多个输入。输出,一个算法必须产生一个或多个输出。2/4/202364.2算法基本知识2.算法的要素:操作:即构成算法的操作取自哪个操作集。计算机操作主要包括:算术运算、关系运算、逻辑运算、函数运算、位运算及I/O操作等。

控制结构:即如何控制算法中的各操作的执行顺序。2/4/202374.2算法基本知识二.算法的描述对于算法的描述有很多种方法,如自然语言、流程图、计算机语言和伪代码等,其中使用最广泛的是流程图。1.传统的流程图

起止框输入输出框判断框处理框或流程线连接点注释框2/4/20238例4.1设某公司员工工资的计算方法工资=基本工资+提成。其中:提成的计算方法为:当销售额在5000元以下时,只发基本工资800元;当销售额在5000元以上时,超出部分可按3%提成。分析:①销售额5000元以下时,工资=800。②销售额5000元以上时,工资=800+(销售额-5000)*0.03。用自然语言描述算法为:①输入销售额m②若m<5000,则s=800,否则s=800+(m-5000)*0.03③输出工资s2/4/20239传统流程图描述的算法2/4/2023104.2算法基本知识2.N-S流程图

AB顺序结构条件成立不成立AB分支结构当条件成立A当型循环结构直到条件成立A直到型循环结构2/4/202311例4.2计算所有业务员的平均工资。分析题意可知,计算平均工资的计算公式为:平均工资=工资总额/人数。用自然语言描述算法为:①变量赋初值sum=0,n=0。②输入第1个业务员的工资x。③当x>=0时,执行④,否则执行⑧。④求工资的累加和sum=sum+x。⑤对业务员人数计数n=n+1。⑥输入下一个业务员的工资x。⑦回去执行③。⑧计算平均工资average=sum/n。⑨输出平均工资average。2/4/202312用N-S流程图描述的算法2/4/2023134.3顺序结构程序设计顺序结构是这三种结构中最简单的一种,通常的处理流程是先输入参数,然后完成相应的计算和处理,最后输出结果。例4.3:输入摄氏温度C的值,计算华氏温度F的值。(计算公式为:F=9*C/5+32) main() { floatc,f; printf("Pleaseinputc:"); scanf("%f",&c); f=9*c/5+32; printf("f=%6.2f\n",f); }Pleaseinputc:32↙f=89.602/4/202314例4.4输入一个无符号十进制整数,输出与它对应的十六进制数。#include<stdio.h>main(){ unsignedintx; printf("Inputx:"); scanf("%u",&x); printf("%u=%xH\n",x,x);}Inputx:34↙34=22H2/4/2023154.4关系运算与逻辑运算一.关系运算1.关系运算符关系运算符用于两个数据量之间的比较,C语言中关系运算符有以下6种: <、<=、>、>=、==、!=关系运算结果是一个逻辑值,只有“真”和“假”两种情况。在C语言中规定:逻辑值“真”用1表示,逻辑“假”用“0”表示。5==3/*结果为0*/3>=0/*结果为1*/‘a’!=‘b’/*结果为1*/2/4/2023164.4关系运算与逻辑运算2.关系表达式用关系运算符将两个表达式连接起来的式子,称为关系表达式。A>3关系表达式关系运算符(a+b)>(b+c)(a=3)>(b=5)(a>b)>(b<c)2/4/2023174.4关系运算与逻辑运算3.关系运算符的优先级C语言规定,6种关系运算符之间的优先级顺序为:(1)前四种关系运算符(<、<=、>、>=)的优先级相同,后两种关系运算符(==、!=)的优先级相同。(2)前四种的优先级高于后两种。关系运算符与其它运算之间的优先级顺序: 算术运算符高 关系运算符 赋值运算符低2/4/2023184.4关系运算与逻辑运算4.关系运算符的结合方向6种关系运算符的结合方向都是从左到右。例如,若a=4,b=2,c=1,则:a>b>ca!=b==c2/4/202319<>关系运算几点注意:例5>2>7>8在C中是允许的,值为0例inti=1,j=7,a;a=i+(j%4!=0);则a=2例‘a’>0结果为‘A’>100结果为10>结合方向自左至右用ASCII值比较2/4/2023204.4关系运算与逻辑运算二.逻辑运算1.逻辑运算符C语言中有三种逻辑运算符:&&逻辑与‖逻辑或!逻辑非参加逻辑运算的数据量可以是任何类型,但将它们看作是逻辑值,具体规定如下:非0 为真0 为假2/4/2023214.4关系运算与逻辑运算逻辑运算的结果也是一个逻辑值,规定:逻辑值“真” 用1表示逻辑“假” 用0表示逻辑运算的真值表ab!aa&&ba||b001101011100000101112/4/2023224.4关系运算与逻辑运算2.逻辑表达式用逻辑运算符连接的表达式称为逻辑表达式。例如:!5‘a’&&‘c’3.逻辑运算符的优先级C语言规定,逻辑运算符之间的优先级从高到低的顺序是:!(逻辑非)、&&(逻辑与)、||(逻辑或)2/4/2023234.4关系运算与逻辑运算3.逻辑运算符的优先级C语言规定,逻辑运算符之间的优先级从高到低的顺序是:!(逻辑非)、&&(逻辑与)、||(逻辑或)运算符的优先级: !(非) 高 算术运算符 关系运算符 &&和‖ 赋值运算符 低2/4/2023244.4关系运算与逻辑运算4.逻辑运算符的结合方向C语言规定,逻辑运算符的结合方向是: ! 结合方向为:从右到左 && 结合方向为:从左到右 || 结合方向为:从左到右例如,若a=4,b=2,c=1,则!!aa&&b&&ca<0||b<0||c<0a++&&b++?2/4/2023254.4关系运算与逻辑运算5.逻辑运算中的短路现象

在逻辑表达式的求解过程中,并不一定需要求解该逻辑表达式中的所有表达式。若a=4,b=2,c=1,则(1)a<0&&b>0

(2)a++<0&&b++>0(3)a>0||b>0(4)a++>0||++b>02/4/202326<>逻辑运算中的注意点:短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。

若a=1;b=2;c=3;d=4;m=1;n=1;则(m=a>b)&&(n=c>d)

a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值

a||b||c

//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值//结果m=0,n=12/4/202327下面的输出是什么?#includeintmain(){ inti=6; if(((++i<7)&&(i++/6))||(++i<=9)); printf("%d\n",i); return0;}2/4/2023284.4关系运算与逻辑运算三.程序中对条件的描述程序设计时,若要进行条件判断,应该用正确的逻辑表达式或条件表达式来描述。①x≦10或x=100②0≦x≦10且x≠5→

x<=10||x==100↘x>=0&&x<=10&&x!=5→

0<=x<=10&&x!=5?×2/4/202329<>复杂逻辑条件的表述

③判断某一年year是否为闰年判别闰年的条件(intyear):能被4整除:year%4==0能被4整除但不能被100整除:(year%4==0)&&(year%100!=0)能被400整除:year%400==0综合起来:((year%4==0)&&(year%100!=0))||year%400==0此表达式为真时是闰年优化语句:(year%4==0&&year%100!=0)||year%400==02/4/202330④判断某职工是否能够退休条件为:男职工年龄在60岁以上或女职工年龄在55岁以上。age>=60&&sex==’m’||age>=55&&sex==’w’2/4/2023314.5if语句一.if语句的基本形式if语句的基本形式是: if(表达式) 语句1; else 语句2;该语句执行过程为:若表达式的值为“真”时,则执行语句1;否则,执行语句2。2/4/2023324.5if语句一.if语句的基本形式说明:表达式部分用来描述判断的条件,语法上可以是任意类型的表达式,结果为“0”,则表示“假”,结果为“非0”,则表示“真”。表达式部分最常用的形式是一个逻辑表达式或条件表达式。语句1和语句2部分都只能是一条语句,这条语句可以是一个复合语句,或是空语句。为了养成良好的编程习惯,一般采用缩进对齐的格式书写,即将语句1和语句2缩进对齐,将关键字if和else对齐。P67例4.52/4/2023334.5if语句二.缺省else结构的if语句在基本的if语句结构中,若在条件不成立时什么也不用做,可以使用C语言中缺省else结构的if语句 if(表达式)语句;缺省else结构的if语句的执行过程为:若表达式的值为“真”时,则执行语句;否则,执行下一条语句。2/4/202334<>If语句的三种形式形式一:格式:if(表达式)语句执行过程:表达式语句非0=0main(){intx,y;x=20;y=10;if(x>y)printf(“%d”,x);}没有“;”2/4/202335<>形式二:格式:if(表达式)

语句1else

语句2执行过程:表达式语句1语句2非0=0main(){intx,y;x=20;y=10;if(x>y)printf(“%d”,x);

elseprintf(“%d”,y);}2/4/202336<>形式三:格式:if(表达式1) 语句1 elseif(表达式2)语句2 elseif(表达式3)语句3 …… elseif(表达式m)语句m else语句n执行过程:表达式1语句1非0=0表达式2表达式3语句n语句3语句2非0非0=0=0例:if(number>500)cost=0.15;

elseif(number>300)cost=0.1;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;

必须有“;”2/4/202337<>几点说明:if后面的表达式类型任意if后面的语句可以是复合语句,必须要加{}if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a’)printf(“%d”,a);考虑下面程序的输出结果:main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!{}后没有“;”2/4/202338<>#include<stdio.h>voidmain(){inta,b;printf("Enterintegera:");scanf("%d",&a);printf("Enterintegerb:");scanf("%d",&b);if(a==b)printf("a==b\n");elseprintf("a!=b\n");}例:输入两个数并判断两数是否相等运行:Enterintegera:12

Enterintegerb:12a==b运行:Enterintegera:12

Enterintegerb:9a!=b;会怎么样?2/4/202339

inta=1;if(a=0)

printf("OK");

inta=0;if(a=1)

printf("OK");找别扭

inta=1;if(a==0)

printf("OK");

inta=0;if(a==1)

printf("OK");if(!a)if(a)2/4/202340==和=

inta;a=0;a==1;

一定要分清==和=

下面用法能起点小作用:

inta=0;if(0==a)

printf("OK");

inta;a==0;a=1;

inta=0;if(0=a)

printf("OK");编译出错2/4/202341<>#include<stdio.h>voidmain(){charc;printf("Enteracharacter:");c=getchar();if(c<32)printf("Thecharacterisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thecharacterisadigit\n");elseif(c>='A'&&c<='Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\n");}例:判断输入字符种类运行:Enteracharacter:Thecharacterisacontrolcharacter运行:Enteracharacter:8Thecharacterisadigit运行:Enteracharacter:DThecharacterisacapitalletter运行:Enteracharacter:hThecharacterisalowerletter运行:Enteracharacter:F1Thecharacterisothercharacter2/4/202342<>#include<stdio.h>voidmain(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}例:输入两个实数,按由小到大的次序输出两数输入:3.6,-3.2输出:-3.20,3.60

2/4/202343<>#include<stdio.h>voidmain(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);}例:输入三个数,按由小到大的次序输出输入:3,7,1输出:1.00,3.00,7.00

2/4/2023444.6if语句的嵌套一个if语句中又包含一个或多个if语句的现象称为if语句的嵌套。if语句的基本形式的“语句1”部分或“语句2”都可以嵌套另一个if语句,在缺省else结构的if语句中的“语句”部分也可以嵌套另一个if语句。在if语句嵌套的结构中一定要注意else与if之间的对应关系。在C语言中规定的对应原则是:else总是与它前面最近的一个未匹配的if相匹配。2/4/202345<>If语句的嵌套If语句中又包含一个或多个if语句称为if语句的嵌套。实际上只要将前述if语句的形式1和2中的内嵌语句用一个if语句代替,即成为if语句的嵌套。嵌套的if语句还可以嵌套另一个if语句,形成多重嵌套。一般形式:if(条件1)if(条件2)语句1else语句2elseif(条件3)语句3else语句4内嵌if内嵌if2/4/202346<>if嵌套的几种变形if(条件1)语句1elseif(条件2)语句2else语句3内嵌ifif(条件1)if(条件2)语句1else语句2else语句3内嵌ifif(条件1)if(条件2)语句1elseif(条件3)语句2else语句3内嵌ifif(条件1)

{if(条件2)语句1}elseif(条件3)语句2else语句3内嵌if内嵌if注意:else总是与前面最近的if配对。内嵌if内嵌if是这样吗?必要时用{}限定内嵌if范围2/4/202347<>例:输入两个数并判断其大小关系#include<stdio.h>voidmain(){intx,y;printf("Enterintegerx,y:");scanf("%d,%d",&x,&y);if(x!=y)if(x>y)printf("X>Y\n");elseprintf("X<Y\n");elseprintf("X==Y\n");}Enterintegerx,y:12,23X<YEnterintegerx,y:12,6X>YEnterintegerx,y:12,12X==Y2/4/202348<>if~else

配对原则:缺省{}时,else总是和它上面离它最近的未配对的if配对。if(……)if(……)if(……)else…...else…...else…...例考虑下面程序的输出结果main(){intx=100,a=10,b=20;intv1=5,v2=0;if(a<b)if(b!=15)if(!v1)x=1;elseif(v2)x=10;x=-1;printf(“%d”,x);}结果:-12/4/202349例4.11输入3个任意整数.找出最大值#include<stdio.h>main(){inta,b,c,max; scanf("%d%d%d“,&a,&b,&c); if(a>b) if(a>c) max=a; else max=c; else if(b>c) max=b; else max=c; printf("max=%d\n",max);}对吗?2/4/202350<>

程序1:main(){intx,y;scanf(“%d”,&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf(“x=%d,y=%d\n”,x,y);}

程序2:main(){intx,y;scanf(“%d”,&x);if(x>=0);if(x>0)y=1;elsey=0;elsey=-1printf(“x=%d,y=%d\n”,x,y);}

程序3:main(){intx,y;scanf(“%d”,&x);y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf(“x=%d,y=%d\n”,x,y);}输入:-2得到:x=-2,y=0

程序3改:main(){intx,y;scanf(“%d”,&x);y=-1;if(x!=0)

{if(x>0)y=1;}elsey=0;printf(“x=%d,y=%d\n”,x,y);}例4.12:有一函数 -1 (x<0)y= 0 (x=0) 1 (x>0) 编一程序,输入一个x值,输出y值。请考虑:y=1或y=0时,if语句应该如何写?{}什么情况下可以不要?2/4/202351<>if语句中,当表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值时,可以用条件运算符处理。if(a>b)max=a;elsemax=b;max=(a>b)?a:b;表达式1?表达式2:表达式3表达式1表达式2值表达式3值非0=0条件运算符是C语言中唯一的三目运算符4.7条件运算符2/4/202352<>条件运算符练习例求a+|b|printf(“a+|b|=%d\n”,b>0?a+b:a-b);例(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a’&&c<=‘z’)?c-’a’+’A’:c条件运算符几点说明:条件运算符可嵌套优先级:13结合方向:自右向左表达式1?表达式2:表达式3类型可以不同,表达式值取表达式2和表达式3中较高的类型x?‘a’:‘b’//x=0,表达式值为‘b’;x≠0,表达式值为‘a’x>y?1:1.5//x>y,值为1.0;x<y,值为1.5max=(a>b)?a:b;//max=a>b?a:b;嵌套:x>0?1:(x<0?-1:0)a>b?a:c>d?c:da>b?a:(c>d?c:d)2/4/202353<>例:输入一个字母,大写转小写,然后输出字母#include<stdio.h>voidmain(){charch;scanf("%c",&ch);ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;printf(“%c“,ch);}输入:A输出:a2/4/2023544.8switch语句switch语句也可以实现多分支的选择。switch语句的一般形式如下: switch(表达式) { case常量表达式1:语句1; case常量表达式2:语句2; ┋ case常量表达式n:语句n; default:语句n+1;}2/4/202355<>switch语句(多分支选择语句)一般形式:switch(表达式e){caseC1:

语句1;

break;caseC2:

语句2;

break;…….caseCn:

语句n;

break;[default:语句n+1;

break;]}switch表达式语句组1语句组2语句组n语句组…...C1C2Cndefaultcase执行过程需要跳出switch语句时使用2/4/2023564.8switch语句switch语句的执行过程为:首先计算switch后面括号内的表达式,然后从上到下按顺序与各个case后面的常量表达式的值进行比较,若与某一个常量表达式的值相匹配,就选择这个标号作为入口,开始向下执行,以后不再作条件匹配的判断。若不能与所有的常量表达式匹配,则选择default这个标号开始向下执行。2/4/202357<>switch几点说明C1,C2,…Cn是常量表达式,且值必须互不相同常量表达式起语句标号作用,必须用break跳出case后可包含多个可执行语句,且不必加{}switch可嵌套多个case可共用一组执行语句#include<stdio.h>main(){chargrade;grade=getchar();switch(grade){case‘A’:printf(“85~100\n”);case‘B’:printf(“70~84\n”);case‘C’:printf(“60~69\n”);case‘D’:printf(“<60\n”);default:printf(“Error\n”);}}A85~10070~8460~69<60Error缺少break;#include<stdio.h>main(){chargrade;grade=getchar();switch(grade){case‘A’:printf(“85~100\n”);break;case‘B’:printf(“70~84\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:printf(“<60\n”);break;default:printf(“Error\n”);}}A85~100如:……case‘A’:case‘B’:case‘C’:printf(“score>60\n”);break;……..2/4/202358<>#include<stdio.h>voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“\na=%d,b=%d”,a,b);}a=2,b=1例

switch嵌套2/4/202359<>例

根据输入的字母输出相应的字符串#include<stdio.h>voidmain(){intc;printf("Entermornorhorother:");c=getchar();switch(c){case'm':printf("Goodmorning!\n");break;case'n':printf("Goodnight!\n");break;case'h':printf("Hello!\n");break;default:printf("????????\n");}}mGoodmorning!2/4/202360<>例

根据输入的字母输出相应的字符串#include<stdio.h>voidmain(){intc;printf("Entermornorhorother:");c=getchar();if(c=='m‘)printf("Goodmorning!\n");elseif(c=='n‘)printf("Goodnight!\n");elseif(c=='h‘)printf("Hello!\n");elseprintf("????????\n");}mGoodmorning!2/4/202361#include<stdio.h>main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){ case1:printf("Monday\n"); case2:printf("Tuesday\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error\n");}}2/4/202362#include<stdio.h>main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}}2/4/202363使用switch语句时注意以下几点:在case后的各常量表达式的值不能相同,否则会出现错误。在case后,允许有多个语句,可以不用{}括起来。各case和default子句的先后顺序可以变动,而不会影响程序执行结果。default子句可以省略不用。2/4/202364switch和else-if的比较

else-if比switch的条件控制更强大一些

else-if可以依照各种逻辑运算的结果进行流程控制

switch只能进行==判断,并且只能是整数判断

switch比else-if更清晰

两者都要尽量避免用得过多、过长,尤其不要嵌套得太多

–它们大大增加程序的分支,使逻辑关系显得混乱,不易维护,易出错2/4/202365<>程序举例例

判断某一年是否闰年#include<stdio.h>①voidmain(){intyear,leap;scanf(“Enteryear:%d”,&year);if(year%4==0)

{if(year%100==0)

{if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.\n”);}{}能省略吗?#include<stdio.h>②voidmain(){intyear,leap;scanf(“Enteryear:%d”,&year);if(year%4!=0)leap=0;elseif(year%100!=0)leap=1;elseif(year%400!=0)leap=0;elseleap=1;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.\n”);}③使用逻辑表达式#include<stdio.h>voidmain(){intyear,leap;scanf(“Enteryear:%d”,&year);if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.\n”);}2/4/2023664.9选择结构程序设计举例例4.17:输入三角形的三个边长,求三角形的面积。设三角形的3条边长分别为a、b、c,3条边长能够构成三角形的条件为:任意两条边的边长之和大于第3条边的边长,即:a+b>c&&a+c>b&&b+c>a根据3条边的边长计算三角形面积的公式为:area=其中,s=(a+b+c)/2。2/4/202367#include<math.h>#i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论