实验5(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5
1、以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在【】内填入正确内容。判断三边是否构成三角形的条件是任意两边之和大于第三边,任意两边之差小于第三边。等边三角形的条件是三条边数值相等,等腰三角形是两边相等,直角三角形条件是任意两边的平方和等于第三边的平方和。
测试数据:
(1)输入三边为3,3,3时输出:等边三角形,面积为3.897114 (2)输入三边为3,4,2时输出:一般三角形,面积为2.904738 (3)输入三边为1,2,3时输出:不能组成三角形
(4)输入三边为3,4,5时输出:直角三角形,面积为6.000000 (5)输入三边为3,3,4时输出:等腰三角形,面积为4.472136 (6)输入三边为3,4,3时输出:等腰三角形,面积为4.472136 (7)输入三边为4,3,3时输出:等腰三角形,面积为4.472136
#include
main()
{
float a,b,c;
float s,area;
scanf("%f %f %f",&a,&b,&c);
if(【1】)
{
if(【2】)
printf("输入的三边组成等边三角形\n");
else if(【3】)
printf("输入的三边组成等腰三角形\n");
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf("输入的三边组成直角三角形\n");
else printf("输入的三边组成一般三角形\n");
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为:%f\n",area);
}
else printf("输入的三边不能组成三角形\n");
}
填空后程序:
#include
#include
main()
{
float a,b,c;
float s,area;
scanf("%f %f %f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b) { if((a==b)&&(a==c)) printf("输入的三边组成等边三角形\n"); else if((a==b)||(a==c)||(b==c)) printf("输入的三边组成等腰三角形\n"); else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf("输入的三边组成直角三角形\n"); else printf("输入的三边组成一般三角形\n"); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("三角形的面积为:%f\n",area); } else printf("输入的三边不能组成三角形\n"); } 2. 有一个函数:(5-2.c ) 写一段程序,输入x ,输出y 值。 方法一:#include void main() {int x,y; scanf(“%d ”,&x); if (x<1) y=x; else if (x<10) y=2*x-1; else y=3*x-11; printf(“x=%d,y=%d\n ”,x,y); } ⎪⎩⎪⎨⎧≥<≤<=01 x 11-3x 10x 1 1-2x 1x x y 运行结果: 注意:此题容易出错的地方是平时我们书写y=2x-1是可以的,但在c里面2与x之间的乘号是不可以省略的.这点需要特别注意,还有一个是当if条件后有多条语句要执行时,需要用大括号括起来,不然满足条件就执行到第一个分号结束. 方法二:#include void main() {int x,y; scanf(“%d”,&x); if (x<1) y=x; if (x>=1&&x<10) y=2*x-1; if (x>=10) y=3*x-11; printf(“x=%d,y=%d \n”,x,y); } 运行结果: 3、从键盘输入一个不多于5位的正整数,要求:(5-3.c) 求出它是几位数 分别输出每一位上的数字 按逆序输出各位数字,例如原数为123,输出就应该是321 例如:如果输入的是12345,则输出该数是5位数,万位数为1,千位为2,百位为3,十位为4,个位为5 #include void main() {long x,n,wan,qian,bai,shi,ge;/*变量x表示输入的数据,n表示数据的位数,wan表示数据万位上的数值,qian表示数据千位上的数值,bai表示数据百位上的数值,shi表示数据十位上的数值,ge表示数据个位上的数值*/ printf("请输入一个不多于5位的正整数:"); scanf("%ld",&x); if (x>=10000) n=5; else if (x>=1000) n=4; else if (x>=100) n=3; else if (x>=10) n=2; else n=1;