解题思路:
注意事项:
接收输入用单精度,运算用双精度(有多次开方运算),避免丢失精度。
借助海伦公式,可自行查询,这里不在过多赘述。
可直接使用。
参考代码:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main() {
float x1, y1, x2, y2, x3, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double len1 = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);//a
double res1 = sqrt(len1);
double len2 = (x3 - x1)*(x3 - x1) + (y3 - y1)*(y3 - y1);//b
double res2 = sqrt(len2);
double len3 = (x3 - x2)*(x3 - x2) + (y3 - y2)*(y3 - y2);//c
double res3 = sqrt(len3);
double p = (res1 + res2 + res3) / 2;
double r = p * (p - res1) * (p - res2) * (p - res3);
double s = sqrt(r);
cout << fixed << setprecision(2) << s << endl;
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复