17:计算三角形面积
描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。
输入
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出
输出也是一行,输出三角形的面积,精确到小数点后两位。
示例输入
0 0 4 0 0 3
示例输出
6.00
提示
海伦公式
分析
海伦公式表达式为:S=√p(p-a)(p-b)(p-c) //a,b,c为边长,S为面积
半周长:p=(a+b+c)/2
注意:坐标可以为浮点数
代码
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
double x1, y1, x2, y2, x3, y3; //三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3)
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double p, s, s1, s2, s3; //p为半周长,s为面积,s1,s2,s3为边长
s1 = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); //边长s1
s2 = sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3)); //边长s2
s3 = sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3)); //边长s3
p = (s1 + s2 + s3) / 2; //半周长
s = sqrt(p * (p - s1) * (p - s2) * (p - s3)); //三角形面积
cout << fixed << setprecision(2) << s << endl;
return 0;
}