B2149 求三角形面积
欢迎报名洛谷网校,期待和大家一起进步!
本题考察分支结构和三角形的性质。
我们要分两步走:
第一步:判断能不能组成三角形。
三角形的要求是三角形两边之和大于第三边。就是说,对于一个三角形:
- 木棍
a 的长度 + 木棍b 的长度,必须大于木棍c 的长度。 - 木棍
a 的长度 + 木棍c 的长度,必须大于木棍b 的长度。 - 木棍
b 的长度 + 木棍c 的长度,必须大于木棍a 的长度。
这三个条件必须同时都满足,这三根木棍才能围成一个三角形。只要有一个条件不满足,它们就拼不起来。
第二步:如果能组成三角形,就计算面积。
题目中给出了海伦公式。若三角形的边长为
所以我们先使用分支结构完成第一步,再根据海伦公式完成第二步,即可完成本题。
参考代码:
// a, b, c 要定义成 double 类型!
if (a + b > c && a + c > b && b + c > a) {
// 如果能组成三角形,则利用海伦公式计算面积
double s = (a + b + c) / 2.0;
double area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("%.2f\n", area);
} else {
// 如果不能组成三角形
cout << "No solution." << endl;
}