题解:洛谷 P5708 【深基2.习2】三角形面积
【题目来源】
【题目描述】
一个三角形的三边长分别是 \(a\)、\(b\)、\(c\),那么它的面积为 \(\sqrt {p(p-a)(p-b)(p-c)}\),其中 \(p = \frac{1}{2}(a+b+c)\)。输入这三个数字,计算三角形的面积,四舍五入精确到 \(1\) 位小数。
【输入】
第一行输入三个实数 \(a\)\(,\)\(b\)\(,\)\(c\),以空格隔开。
【输出】
输出一个实数,表示三角形面积。精确到小数点后 \(1\) 位。
【输入样例】
3 4 5
【输出样例】
6.0
【算法标签】
《洛谷 P5708 三角形面积》 #Special judge#
【代码详解】
#include <iostream> // 包含输入输出流库(Mac环境替代<bits/stdc++.h>)
#include <cmath> // 包含数学函数库(使用sqrt函数)
using namespace std; // 使用标准命名空间
/**
* 主函数 - 程序入口
* @return 程序执行状态码(0表示成功)
*/
int main()
{
double a, b, c; // 定义三角形三边长度
double p, ans, t; // 定义中间变量:半周长p,面积ans,临时变量t
cin >> a >> b >> c; // 输入三角形三条边长
p = 0.5 * (a + b + c); // 计算三角形半周长
t = p * (p - a) * (p - b) * (p - c); // 海伦公式中间计算
ans = sqrt(t); // 开平方得到最终面积
printf("%.1f", ans); // 格式化输出面积(保留1位小数)
return 0; // 返回程序执行成功状态码
}
【运行结果】
3 4 5
6.0
浙公网安备 33010602011771号