定义一个函数,用该函数判断对于给定范围 [1,104] 的三个正整数作为边长,能否构成三角形。如果能,则进一步判断所构成的三角形是普通三角形、等腰三角形,还是等边三角形。
时间: 2024-12-19 21:25:37 浏览: 73
要定义一个函数来判断给定三个正整数是否能构成三角形并确定其类型,首先我们需要了解三角形的性质:
1. 任意两边之和必须大于第三边(三角不等式)。
2. 如果有两条边相等,则为等腰三角形;三条边都相等时为等边三角形。
以下是一个C++函数示例,用于判断三角形类型:
```cpp
#include <iostream>
// 函数声明
bool is_triangle(int a, int b, int c);
enum TriangleType { NONE, SCALED, ISOSCELES, EQUILATERAL };
// 判断三角形类型
TriangleType triangle_type(int a, int b, int c) {
if (is_triangle(a, b, c)) {
if (a == b && b == c) return TriangleType::EQUILATERAL; // 等边三角形
else if (a == b || a == c || b == c) return TriangleType::ISOSCELES; // 等腰三角形
else return TriangleType::SCALED; // 普通三角形
}
return TriangleType::NONE;
}
// 判断是否满足三角形条件
bool is_triangle(int a, int b, int c) {
return a + b > c && a + c > b && b + c > a;
}
int main() {
for (int i = 1; i <= 104; ++i) {
for (int j = 1; j <= 104; ++j) {
for (int k = 1; k <= 104; ++k) {
TriangleType type = triangle_type(i, j, k);
if (type != TriangleType::NONE) {
std::cout << "边长分别为 " << i << ", " << j << ", " << k
<< " 的三角形是:";
switch (type) {
case TriangleType::EQUILATERAL:
std::cout << "等边三角形" << std::endl;
break;
case TriangleType::ISOSCELES:
std::cout << "等腰三角形" << std::endl;
break;
default:
std::cout << "普通三角形" << std::endl;
}
}
}
}
}
return 0;
}
```
这个程序会遍历 [1, 104] 范围内的所有可能组合,检查它们是否构成三角形,并根据三角形的形状打印结果。
阅读全文
相关推荐


















