根据三角形的三条边a、b、c,求三角形的面积。求三角形面积的公式为 ,其中s=(a+b+c)/2。要求函数返回值类型定义为状态类型(Status 类型),当给定的三条边不能构成三角形时,函数返回ERROR;否则函数返回OK,并利用引用类型参数返回三角形的面积。
时间: 2024-05-11 18:17:02 浏览: 68
好的,根据您的要求,以下是对应的C++代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
typedef enum {
OK,
ERROR
} Status;
Status calcTriangleArea(double a, double b, double c, double& area) {
if (a + b <= c || a + c <= b || b + c <= a) {
return ERROR;
}
double s = (a + b + c) / 2;
area = sqrt(s * (s - a) * (s - b) * (s - c));
return OK;
}
int main() {
double a = 3, b = 4, c = 5;
double area = 0;
Status status = calcTriangleArea(a, b, c, area);
if (status == OK) {
cout << "Triangle area is: " << area << endl;
} else {
cout << "Error: Cannot form a triangle with sides: " << a << ", " << b << ", " << c << endl;
}
return 0;
}
```
您可以自行修改 `a`、`b`、`c` 的值来测试函数的正确性。如果三条边不能构成三角形,函数返回 `ERROR`,否则函数返回 `OK` 并且通过引用类型参数 `area` 返回三角形的面积。
阅读全文