题目描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少,精确到小数点后两位。
输入
输入仅一行,包括6个浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出
输出也是一行,输出三角形的面积,精确到小数点后两位。
样例输入 复制
0 0 4 0 0 3
样例输出 复制
6.00
提示
已知:A点坐标为 (x1,y1),B点坐标为 (x2,y2),线段AB的长度为
海伦公式:三角形的三边长度为 a,b,c,则三角形的面积为 ,其中
题解:
本题普及海伦公式求三角形面积,注意三条边的边长都是根据线段长度公式求得的,
海伦公式适用于所有三角形求解面积是通用公式
#include<cstdio>
#include<iostream>
#include<cmath>
using
namespace
std;
int
main(){
double
x1,y1,x2,y2,x3,y3,p,s,a,b,c;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
a=
sqrt
((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
b=
sqrt
((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
c=
sqrt
((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
p=(a+b+c)/2;
s=
sqrt
(p*(p-a)*(p-b)*(p-c));
printf
(
"%.2lf"
,s);
return
0;
}