【题目链接】
【题目考点】
1. 算术应用题
2. 海伦公式求三角形面积
3. 输出浮点数a保留x位小数
printf(%.xf, a);
cout<<fixed<<setprecision(x)<<a;
4.求开根号
在引入<cmath>后,可以调用函数double sqrt(double x)
,对数x开根号
【解题思路】
- 先输入三条边长a,b,c
- 求出p, p = a + b + c 2 p = \frac{a + b + c}{2} p=2a+b+c
- 再求面积 s = p ( p − a ) ( p − b ) ( p − c ) s = \sqrt{p(p-a)(p-b)(p-c)} s=p(p−a)(p−b)(p−c)
- 输出时注意保留3位小数
【题解代码】
解法1:用cin, cout
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a, b, c, p;
cin >> a >> b >> c;
p = (a+b+c)/2;
cout << fixed << setprecision(3) << sqrt(p*(p-a)*(p-b)*(p-c));
return 0;
}
解法2:用scanf,printf
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a, b, c, p;
scanf("%lf %lf %lf", &a, &b, &c);
p = (a+b+c)/2;
printf("%.3f", sqrt(p*(p-a)*(p-b)*(p-c)));
return 0;
}