题解分享
题解分享简介
计算三角形面积 - 题解
```
/*
思路分析
思路一 :
1. 求两点之间的距离 l = sqrt(pow((x2 - x1) , 2) + pow((y2 - y1) , 2))
2. 求点到线的距离 斜率k= (y2-y1)/(x2-x1) 截距b= y - kx (代入一个坐标进去)
--- 距离d= | k * x3 - y3 + b | / sqrt(pow(k , 2) + 1)
3. 底X高/2 s= l * d / 2;
思路二:
1. 求出三条边的距离
3. 利用海伦公式直接求出 s = sqrt(p*(p-a)*(p-b)*(p-c)) p = (a + b + c) / 2
//思路一
#include <bits/stdc++.h>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double l,d,s,k,b;
l = sqrt(pow((x2 - x1) , 2) + pow((y2 - y1) , 2));
k = (y2-y1)/(x2-x1);
b = y1 - k * x1;
d = abs(k * x3 - y3 + b) / sqrt((pow(k , 2) + 1));
s = l * d / 2;
cout << fixed << setprecision(2) << s << endl;
return 0;
}
//思路二
#include <bits/stdc++.h>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double l1,l2,l3,p,s;
l1 = sqrt(pow((x2 - x1) , 2) + pow((y2 - y1) , 2));
l2 = sqrt(pow((x3 - x1) , 2) + pow((y3 - y1) , 2));
l3 = sqrt(pow((x2 - x3) , 2) + pow((y2 - y3) , 2));
p = (l1 + l2 + l3) / 2;
s = sqrt(p * (p - l1) * (p - l2) * (p - l3));
cout << fixed << setprecision(2) << s << endl;
return 0;
}
*/
```
查看全文
0
0
0
0



