13,825
社区成员
平面上有一个三角形,它的三个顶点坐标分别为\ (x_1, y_1), (x_2, y_2), (x_3, y_3) (x1, y1), (x2, y2), (x3, y3),请问这个三角形的面积是多少。
其中,已知两点坐标\ (x_1, y_1)\ (x1, y1) 和\ (x_2, y_2) (x2, y2),求两点之间线段长度的公式为:
\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}(x1−x2)2+(y1−y2)2
已知三角形三边求面积需要用到海伦公式。已知三角形三边长分别为\ a、b、c a、b、c,要求的面积为\ S S,则有:
p = \frac{a + b + c}{2} \\ \\ S = \sqrt{p(p - a)(p - b)(p - c)}p=2a+b+c S=p(p−a)(p−b)(p−c)
输入
一行,包括\ 6\ 6 个正整数,\ x_1, y_1, x_2, y_2, x_3, y_3\ x1, y1, x2, y2, x3, y3 。
输出
一行,三角形的面积,精确到小数点后两位。
输入样例复制
0 0 4 0 0 3
输出样例复制
6.00
#include <bits/stdc++.h>
#include <cmath>
using
namespace
std;
int
main() {
double
a, b, c,p,s;
cin >> a >> b >> c;
p = (a + b + c) / 2;
s = p * (p - a) * (p - b) * (p - c);
s =
sqrt
(s);
cout << fixed << setprecision(2) << s << endl;
return
0;
}
输入的是三个顶点的坐标,不是边长,边长要自己计算~