C++,从键盘输入三角形的三边边长a,b,c,求三角形的面积。只有a+b>c,b+c>a,a+c> 时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算
时间: 2024-05-13 10:16:31 浏览: 54
以下是C++的代码实现:
```cpp
#include <iostream>
#include <cmath>
#include <stdexcept>
using namespace std;
double calculateArea(double a, double b, double c) {
if (a + b <= c || b + c <= a || a + c <= b) { // 判断是否能构成三角形
throw invalid_argument("Invalid triangle!");
}
double p = (a + b + c) / 2.0;
double area = sqrt(p * (p - a) * (p - b) * (p - c));
return area;
}
int main() {
double a, b, c;
cout << "Please input the lengths of three sides of a triangle: ";
cin >> a >> b >> c;
try {
double area = calculateArea(a, b, c);
cout << "The area of the triangle is: " << area << endl;
} catch (const invalid_argument& e) {
cerr << "Error: " << e.what() << endl;
}
return 0;
}
```
我们首先定义了一个 `calculateArea` 函数来计算三角形的面积,如果无法构成三角形,我们就抛出一个 `invalid_argument` 的异常。在 `main` 函数中,我们从键盘输入三角形的三条边长,然后调用 `calculateArea` 函数来计算面积。如果能成功计算面积,就将结果输出;否则就捕获 `invalid_argument` 异常,并输出错误信息。
阅读全文