描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。
输入输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。输出输出也是一行,输出三角形的面积,精确到小数点后两位。样例输入
0 0 4 0 0 3
样例输出
6.00
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 int main(){ 6 double x1,y1,x2,y2,x3,y3; 7 scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); 8 double a,b,c; 9 a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); 10 b=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)); 11 c=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1)); 12 double p=(a+b+c)/2; 13 double s=sqrt(p*(p-a)*(p-b)*(p-c));14 printf("%.2lf",s); 15 return 0; 16 17 }
Tip:
海伦公式:S=sqrt(p*(p-a)*(p-b)*(p-c))
公式描述:公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。
(其中p=(a+b+c)/2)
设置的变量要与公式中输入的变量一致!!!