疯狂的赛车黄渤结局:高手来啊 用C++ 编写三角形面积计算

来源:百度文库 编辑:高校问答 时间:2024/05/06 01:37:21
要求:
根据三角形的三条边计算三角形的面积,如果该三角形是等边或等腰要给出提示,并通过下面给定的算法来判断三角形是直角,钝角还是锐角三角形程序的功能要求如下:
1. 先输入三角形的三条边的边长a、b、c
2. 判断a、b、c能否构成三角形,构成三角形的条件是:任意两边之和大于第三边,如果不能构成三角形则提示“不是三角形”并退出程序
3. 如果能构成三角形,则计算三角形的面积,公式见算法说明
4. 判断三角形是否等边或等腰,公式见算法说明
5. 判断三角形是直角、钝角还是锐角三角形,公式见算法说明

算法说明
程序中用到的算法如下:
1. 计算三角形的面积
使用海伦公式,已知三角形的三条边的边长为a、b、c,那么
a + b+c
d= ————— ,面积m= d(d-a)(d-b)(d-c)
2
2. 判断三角形是等边或者等腰
如果三角形三条边相等,则为等边三角形,如果任意两边相等但不等于第三边,则为等腰三角形
3. 判断三角形是直角、钝角或锐角
直角三角形是指一个内角为90度的三角形,钝角三角形是指有一个内角大于90度的三角形,锐角三角形是指所有内角小于90度的三角形
如果三角形的任意一条边的平房等于其他两条边平方的和,则为直角三角形,如果任意一条边的平方大于其他两条边平方的和,则为钝角三角形,否则,为锐角三角形

推荐实现步骤
1. 编写main函数
① 输入三角形的三条边的边长
② 判断是否能构成三角形,如果不能则提示并退出程序,否则继续
③ 计算三角形面积,输出面积值
④ 判断三角形是否等边或等腰,如果是则输出判断结果
⑤ 判断三角形是直角、钝角还是锐角,并输出判断结果,提示:因为条件中需多处引用边的平方,为避免多次计算,建议使用变量保存边的平方值
2.函数要求:
根据公式计算三角形的面积,计算平方根数学的函数为
Double sqrt(double)

注意事项:
请注意代码中添加必要的注释
请注意代码的书写、命名符合规范

没时间了,下午写吧!
#include<stdio.h>
#include<math.h>
void main()
{ int fun1(float,float,float); /**/
int fun2(float,float,float);/**/
int fun3(float,float,float); /**/
float a,b,c,area,s;
while(1)
{ printf("Please enter the three sides:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(fun1(a,b,c)) break;
else return;
}
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%7.2f\n",area);
if(fun2(a,b,c)==1) printf("the triangle is an equilateral triangle\n");
else if(fun2(a,b,c)==0) printf("the triangle is an isosceles triangle\n");
else if(fun2(a,b,c)==-1) printf("the triangle is neither an equilateral triangle nor an isosceles triangle\n");

if(fun3(a,b,c)==0) printf("the triangle is a right-angled triangle\n");
else if(fun3(a,b,c)==1) printf("the triangle is an obtuse triangle\n");
else if(fun3(a,b,c)==-1) printf("the triangle is an acute triangle\n");
return ;
}
int fun1(float a,float b,float c)
{ if(((a+b)>c)&&((a+c)>b)&&((b+c)>a))return 1;
else return 0;
}
int fun2(float a,float b,float c)
{ if(a==b==c) return 1;
else if(a==b||a==c||b==c) return 0;
else return -1;
}
int fun3(float a,float b,float c)
{ double A,B,C;
A=a*a;B=b*b;C=c*c;
if(A==B+C||B==A+C||C==A+B) return 0;
else if(A>B+C||B>A+C||C>A+B) return 1;
else if(A<B+C||B<A+C||C<A+B) return -1;
}

不知道啊