用c++解决下面问题:给出三角形的三边 a, b, c,求三角形的面积。只有 a+b>c,b+c>a,c+a>b 时才能构成 三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。
时间: 2024-03-23 11:38:37 浏览: 37
好的,我来为你解答这个问题。
下面是用 C++ 解决该问题的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace;
double calculateArea(double a, double b, double c) {
if (a + b <= c || b + c <= a || c + a <= b) {
throw "无法构成三角形";
}
double p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
int main() {
double a, b, c;
cout << "请输入三角形的三条边: ";
cin >> a >> b >> c;
try {
double area = calculateArea(a, b, c);
cout << "三角形的面积为: " << area << endl;
} catch (const char* message) {
cerr << "警告: " << message << endl;
}
return 0;
}
```
在这个程序中,我们定义了一个名为 `calculateArea` 的函数,用于计算三角形的面积。如果三条边无法构成三角形,则抛出一个字符串类型的异常,表示计算无法进行。在 `main` 函数中,我们通过 `try-catch` 语句捕获这个异常,并输出警告信息。
这个程序可以通过以下方式编译和运行:
```bash
$ g++ -o triangle triangle.cpp
$ ./triangle
```
当你输入三条边无法构成三角形时,程序会输出以下警告信息:
```
请输入三角形的三条边: 3 4 10
警告: 无法构成三角形
```
当你输入三条边能够构成三角形时,程序会输出三角形的面积。
阅读全文