题目描述
平面直角坐标系中有一个三角形, 请你求出它的面积。
输入描述
输出描述
输出一个实数表示三角形面积。结果保留2位小数,误差不超过10-2
输入输出样例
输入:
2
0 1
1 0
1 1
0 0
1 1
2 2
输出:
0.50
0.00
最终代码c/c++
#include<bits/stdc++.h>
using namespace std;
struct Point{ long double x,y;}; //结构体
//两点间距离公式
long double Dist(Point p1, Point p2){
return sqrt((p1.y-p2.y)*(p1.y-p2.y)+(p1.x-p2.x)*(p1.x-p2.x));;
}
//海伦公式求面积
long double area(Point p1, Point p2, Point p3){
long double a = 0, b = 0, c = 0, p = 0;
a = Dist(p1, p2);
b = Dist(p2, p3);
c = Dist(p1, p3);
p = 0.5*(a+b+c);
return sqrt(p*(p-a)*(p-b)*(p-c));
}
int main(){
Point p1,p2,p3;
int t;cin>>t;
while(t--){
cin>>p1.x>>p1.y;
cin>>p2.x>>p2.y;
cin>>p3.x>>p3.y;
printf("%.2Lf\n",area(p1,p2,p3));
}
return 0;
}
过程理解
海伦公式: