题解:P5708 【深基2.习2】三角形面积

P5708 题解

欢迎来到 AstralNahida 的题解频道!

由题意,三边长分别为 \(a\)\(b\)\(c\) 的三角形的面积 \(S=\sqrt{p(p−a)(p−b)(p−c)}\),其中 \(p=\frac{1}{2}(a+b+c)\)。相信大家看得出来,这其实就是著名的海伦-秦九韶公式

要求输出面积,并保留一位小数。在 C++ 中,常用的做法有两种:

  1. std::cout << std::fixed << std::setprecision(1) << x;
  2. printf("%.1lf", x)

注意,这题所涉及的所有变量均应为 double 类型。

其他需要注意的就没什么了,接下来放出代码。

AC Code:

// 这里使用第一种方法。
#include <iostream>
#include <iomanip>

#include <cmath>

int main(void) {
	double a, b, c, p, s;

	std::cin >> a >> b >> c;

	p = (a + b + c) / 2;
	s = sqrt(p * (p - a) * (p - b) * (p - c));

	std::cout << std::fixed << std::setprecision(1) << s << '\n';

	return 0;
}

完结撒花!祝大家 rp++ 喵。

posted @ 2025-08-20 19:16  AstralNahida  阅读(18)  评论(0)    收藏  举报