#t217. 海伦公式

海伦公式

海伦公式

题目描述

已知三角形三条边的长度,请你求出这个三角形的面积。

输入格式

输入三个浮点数,分别代表三条边的长度。

输出格式

输出该三角形的面积,保留 2 位小数。

样例输入

3 4 5

样例输出

6.00

提示

一、开平方:sqrt

double y = sqrt(9.0);      // 3.0
double z = sqrt(2.0);      // 1.41421356...

sqrt 是「square root」的缩写,参数和返回值都是 double。它定义在 <cmath> 里——用万能头 #include <bits/stdc++.h> 就已经包含了,不用额外写。

二、常见配套函数

函数 作用 例子
sqrt(x) 开平方 sqrt(16.0) = 4.0
fabs(x) 绝对值(小数) fabs(-2.5) = 2.5
pow(a,b) a 的 b 次方 pow(2,3) = 8.0

三、三个坑

  • 负数开方:sqrt(-1) 得到 nan(not a number),后续计算全废。用之前确认被开方数非负。
  • 用 %d 输出:sqrt 返回 double,必须用 %f / %.2f。
  • 以为结果是整数:sqrt(9) 得到 3.000000,想输出整数要转 (int)。

四、自检

把结果平方回去,应该约等于原数:3.0 * 3.0 = 9。如果差很多,检查是不是把公式里某一项写错了(尤其是括号)。

  • 第一步算 p,第二步套根号;两步分开写。
  • 三条边是小数,全程用 double。
  • 保留 2 位小数。

自查:用 3 4 5 → 6.00 验证;如果得到 -nan,说明某条边大于半周长,公式里的乘法顺序或输入读错了。