计算三角形面积

描述

平面上有一个三角形,它的三个顶点坐标分别为(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)
设置的变量要与公式中输入的变量一致!!!
posted @ 2019-10-29 20:22  难书  阅读(672)  评论(0编辑  收藏  举报