c++给出三角形的三边 a, b, c,求三角形的面积。只有 a+b>c,b+c>a,c+a>b 时才 能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。
时间: 2024-03-16 16:48:06 浏览: 22
好的,下面是 C++ 的代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c;
cout << "请输入三角形的三条边:" << endl;
cin >> a >> b >> c;
if (a + b > c && b + c > a && c + a > b) {
double p = (a + b + c) / 2;
double S = sqrt(p * (p - a) * (p - b) * (p - c));
cout << "三角形的面积为:" << S << endl;
} else {
cout << "这不是一个三角形!" << endl;
}
return 0;
}
```
这段代码中,我们使用了 `if` 语句来判断输入的三条边是否能构成三角形,如果不能,则输出警告信息,如果能,则使用海伦公式计算三角形的面积。最后,我们使用 `cout` 语句输出结果。
需要注意的是,我们在计算平方根时,需要使用 `cmath` 库中的 `sqrt` 函数。
相关问题
用c++解决下面问题:给出三角形的三边 a, b, c,求三角形的面积。只有 a+b>c,b+c>a,c+a>b 时才能构成 三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。
好的,我来为你解答这个问题。
下面是用 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
警告: 无法构成三角形
```
当你输入三条边能够构成三角形时,程序会输出三角形的面积。
用c++写输入三角形三条边a,b,c的值,计算三角形的面积
下面是使用C语言计算三角形面积的代码,其中输入三角形三条边a、b、c的值:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, s, area;
printf("请输入三角形三条边a、b、c的值:\n");
scanf("%f%f%f", &a, &b, &c);
s = (a + b + c) / 2.0; // 计算半周长
area = sqrt(s * (s - a) * (s - b) * (s - c)); // 计算面积
printf("三角形的面积为:%f\n", area);
return 0;
}
```
代码中使用了海伦公式计算三角形面积。首先计算半周长s,然后根据公式:$area = \sqrt{s(s-a)(s-b)(s-c)}$ 计算面积。