题目描述
一个三角形的三边长分别是 aa、bb、cc,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(p−a)(p−b)(p−c), 其中
p= 1 2 ( a + b + c ) \frac{1}{2}(a+b+c) 21(a+b+c) 。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
保证能构成三角形,0 ≤ a , b , c ≤ \leq a,b,c\leq ≤a,b,c≤ 1000,每个边长输入时不超过2位小数。
输入格式
无
输出格式
无
输入样例
3 4 5
输出样例
6.0
参考代码
//sqrt的依赖包
#include "math.h"
#include "stdio.h"
int main() {
//为减少计算过程中的精度损失,采用double
//三角形的第一条边
double a;
//三角形的第二条边
double b;
//三角形的第三条边
double c;
//公式中的p
double p;
//输入三角形的三条边
scanf("%lf %lf %lf",&a,&b,&c);
//根据公式计算p的值
p = (a + b + c) / 2;
//根据公式直接计算三角形的面积,并输出
printf("%.1f",sqrt(p * (p - a) * (p - b) * (p - c)));
return 0;
}