【题目】
一个三角形的三边长分别是 a、b、c,那么它的面积为 \(\sqrt{p(p-a)(p-b)(p-c)}\)。其中 \(p={\frac{1}{2}}(a+b+c)\) 。
输入这三个数字 a、b、c,计算三角形的面积,四舍五入精确到 1 位小数。保证能构成三角形,0≤a,b,c≤1000,每个边长输入时不超过2位小数。
输入格式:
第一行输入三个实数 a、b、c,以空格隔开。
输出格式:
输出一个实数,表示三角形面积。精确到小数点后 1 位。
输入:
3 4 5
输出:
6.0
【解析】
代码:
#include <cstdio> #include <cmath> using namespace std; int main() { double a,b,c,p,area; scanf("%lf%lf%lf",&a,&b,&c); p=(a+b+c)/2; area=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%.1f\n",area); return 0; }
注意:要用double,用float最后一个测试点过不了。
参考:https://www.cnblogs.com/yuzec/p/13320927.html
参考:https://blog.csdn.net/qq_46702358/article/details/113875225