给定一个三角形的三条边的边长(符合三角形的构成条件),求三角形的面积。 输入描述 输入仅有一行,为三个实数a,b,c(a>0,b>0,c>0),代表三角形的三条边的边长。 输出描述 输出仅有一行,为一个实数S(精确到两位小数),代表三角形的面积
时间: 2024-03-23 13:38:21 浏览: 86
编写一个程序,输入三角形的三条边的边长,求三角形的面积。
这里介绍两种方法计算三角形面积:
1. 海伦公式
海伦公式是计算三角形面积的一种经典公式,公式如下:
s = (a + b + c) / 2
S = sqrt(s * (s - a) * (s - b) * (s - c))
其中,a、b、c 分别为三角形的三条边,s 为半周长,S 为三角形的面积。
以下是该问题的 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double a, b, c;
cin >> a >> b >> c;
double s = (a + b + c) / 2;
double area = sqrt(s * (s - a) * (s - b) * (s - c));
cout << fixed << setprecision(2) << area << endl;
return 0;
}
```
输入样例:
```
3 4 5
```
输出样例:
```
6.00
```
2. 向量叉积法
向量叉积法是另一种计算三角形面积的方法,公式如下:
S = 1/2 * |AB x AC|
其中,A、B、C 分别为三角形的三个顶点,AB 和 AC 分别为两个向量,|AB x AC| 表示 AB 和 AC 的向量叉积的模长。
以下是该问题的 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
struct Point {
double x, y;
};
int main() {
Point A, B, C;
cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y;
double AB_x = B.x - A.x, AB_y = B.y - A.y;
double AC_x = C.x - A.x, AC_y = C.y - A.y;
double area = 0.5 * abs(AB_x * AC_y - AB_y * AC_x);
cout << fixed << setprecision(2) << area << endl;
return 0;
}
```
输入样例:
```
0 0 0 1 1 0
```
输出样例:
```
0.50
```
阅读全文