编写一个函数 surfaceArea(),专用于计算各种不同几何图形的面积,利用C++的函数重载技术,实现 以下至少三个版本: 若给定半径,则计算圆的面积 若给定宽和高,则计算矩形的面积 若给定三条边的长度,则计算三角形的面积
时间: 2024-09-25 14:04:17 浏览: 75
[每日一题] 160. 三维形体的表面积(模拟、常规解法)
在C++中,你可以编写一个名为`surfaceArea()`的函数模板,结合函数重载(Function Overload),以便根据不同输入类型计算不同几何图形的面积。以下是三种情况下的函数实现:
1. **圆的面积** (假设输入的是半径 `radius`):
```cpp
double surfaceArea(double radius) {
return M_PI * pow(radius, 2); // 圆面积公式 πr²
}
```
2. **矩形的面积** (假设输入的是宽度 `width` 和高度 `height`):
```cpp
double surfaceArea(int width, int height) {
return width * height; // 矩形面积公式 长乘以宽
}
```
3. **三角形的面积** (假设输入的是两条边长 `a` 和 `b`,以及它们之间的夹角 `angle`,这里假设角度已转换成弧度,例如使用 `std::atan2` 函数获取):
```cpp
#include <cmath>
double surfaceArea(double a, double b, double angleInRadians) {
double s = (a + b + std::hypot(a, b)) / 2.0; // 半周长
return std::sqrt(s * (s - b) * (s - std::hypot(a, b))); // Heron's formula
}
```
阅读全文