c++源代码根据输入的三角形的三边判断是能组成三角形,若可以则输出它的面积和三角形的类型(等边,等腰,直角,一般三角形)
时间: 2024-10-24 19:17:25 浏览: 11
在C++中,你可以使用如下的代码片段来实现这个功能。首先,我们需要检查输入的三边是否满足构成三角形的条件,然后计算面积并确定三角形类型。
```cpp
#include <iostream>
#include <cmath>
bool is_valid_triangle(double a, double b, double c) {
if (a + b > c && a + c > b && b + c > a)
return true; // 两边之和大于第三边
else
return false;
}
double calculate_area(double a, double b, double c) {
double s = (a + b + c) / 2; // 半周长
return std::sqrt(s * (s - a) * (s - b) * (s - c)); // Heron公式
}
void classify_triangle(double a, double b, double c) {
double sides[3] = {a, b, c};
std::sort(sides); // 排序
if (sides[0] == sides[1] && sides[1] == sides[2]) {
std::cout << "这是一个等边三角形\n";
} else if (sides[0] == sides[1] || sides[1] == sides[2] || sides[0] == sides[2]) {
std::cout << "这是一个等腰三角形\n";
} else if (std::abs(a - b) == std::abs(b - c) || std::abs(a - c) == std::abs(b - c)) {
std::cout << "这是一个直角三角形\n";
} else {
std::cout << "这是一个一般三角形\n";
}
}
int main() {
double a, b, c;
std::cout << "请输入三角形的三条边: ";
std::cin >> a >> b >> c;
if (!is_valid_triangle(a, b, c)) {
std::cout << "无法构成三角形。\n";
} else {
classify_triangle(a, b, c);
double area = calculate_area(a, b, c);
std::cout << "三角形的面积为: " << area << "\n";
}
return 0;
}
```
阅读全文