题目传送门:
https://www.luogu.com.cn/problem/P5708
题目描述
一个三角形的三边长分别是 aa、bb、cc,那么它的面积为 \sqrt{p(p-a)(p-b)(p-c)}
p(p−a)(p−b)(p−c)
,其中 p=\frac{1}{2}(a+b+c)p=
2
1
(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
保证能构成三角形,0\leq a,b,c\leq 10000≤a,b,c≤1000,每个边长输入时不超过2位小数。
输入格式
无
输出格式
无
输入输出样例
输入
3 4 5
输出
6.0
注意:
sqrt(),括号中为double型,获得的值也为double型,如用float型的,在洛谷中会有一用例过不了
代码:
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int main() {
double a, b, c;
cin >> a >> b >> c;
double p = 1.0 / 2 * (a + b + c);
//使用sqrt()时,一般用double型
double s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("%.1f", s);
return 0;
}
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教 。