C++判断三角形的类型 ,包含等腰直角三角形
时间: 2024-10-17 13:08:31 浏览: 39
在C++中,判断一个三角形的类型通常需要知道三个边长a、b和c。常见的三角形类型有三种基本类型:等边三角形(三边相等)、等腰三角形(两边相等)和普通三角形(无特定边相等)。其中,等腰直角三角形有一个特殊条件,即两个非等边的边满足勾股定理(a² + b² = c²),其中c是对边,也是斜边。
判断步骤如下:
1. **输入三角形边长**:首先获取用户输入或者预先给定的三个边长。
2. **检查等边三角形**:如果任意一边等于另外两边之和,则它是等边三角形。
3. **检查等腰三角形**:如果有两边长度相等,那么这个三角形是等腰三角形。
4. **计算面积(只用于验证是否为直角三角形)**:如果两边满足勾股定理,则计算第三个边(c)作为斜边,可以用公式`sqrt(a^2 + b^2)`来检验。
5. **判断直角三角形**:如果满足勾股定理且不是等边三角形,就判断为等腰直角三角形。
```cpp
#include <iostream>
#include <cmath>
bool isEquilateral(double a, double b, double c) {
return std::abs(a - b) < 0.0001 && std::abs(b - c) < 0.0001 && std::abs(c - a) < 0.0001;
}
bool isIsosceles(double a, double b, double c) {
return std::abs(a - b) < 0.0001 || std::abs(b - c) < 0.0001 || std::abs(c - a) < 0.0001;
}
bool isRightangled(double a, double b, double c) {
return std::fabs(a * a + b * b - c * c) < 0.0001;
}
int main() {
double a, b, c;
// 输入边长...
if (isEquilateral(a, b, c)) {
std::cout << "等边三角形" << std::endl;
} else if (isIsosceles(a, b, c)) {
std::cout << "等腰三角形" << std::endl;
} else if (isRightangled(a, b, c) && !isIsosceles(a, b, c)) {
std::cout << "等腰直角三角形" << std endl;
} else {
std::cout << "普通三角形" << std::endl;
}
return 0;
}
```
阅读全文