洛谷B2031
题目描述
平面上有一个三角形,它的三个顶点坐标分别为 (x1,y1),(x2,y2),(x3,y3)(,那么请问这个三角形的面积是多少。
输入格式
输入仅一行,包括 66 个双精度浮点数,分别对应 x1,y1,x2,y2,x3,y3
输出格式
输出也是一行,输出三角形的面积,精确到小数点后两位。
代码:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3,p,l1,l2,l3,s;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
l1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
l2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
l3=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
p=(l1+l2+l3)/2.0;
s=sqrt(p*(p-l1)*(p-l2)*(p-l3));
cout<<fixed<<setprecision(2)<<s<<endl;
return 0;
}
结果:
需要知道是海伦公式,其他没啥了
海伦公式: