信息学奥赛一本通C++题解 · 2024年7月14日 44 0

1034:计算三角形面积

【题目描述】

平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3)(𝑥1,𝑦1),(𝑥2,𝑦2),(𝑥3,𝑦3),那么请问这个三角形的面积是多少,精确到小数点后两位。

【输入】

输入仅一行,包括66个双精度浮点数,分别对应x1,y1,x2,y2,x3,y3𝑥1,𝑦1,𝑥2,𝑦2,𝑥3,𝑦3

【输出】

输出也是一行,输出三角形的面积,精确到小数点后两位。

【题解代码】

#include <iostream>
#include <iomanip>
#include "math.h"
using namespace std;
int main()
{
	double x1, y1, x2, y2, x3, y3;
	cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

	double a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
	double b = sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
	double c = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
	double p = (a + b + c)/2;


	cout <<fixed<<setprecision(2)<< sqrt(p*(p-a)*(p-b)*(p-c));

    return 0;
}