以下是使用 C 语言解决此问题的代码: ```c #include <stdio.h> // 判断是否能构成三角形 int isTriangle(int a, int b, int c) { if (a + b > c && a + c > b && b + c > a) { return 1; } return 0; } // 判断三角形类型 void triangleType(int a, int b, int c) { if (isTriangle(a, b, c)) { int aSquared = a * a; int bSquared = b * b; int cSquared = c * c; if (aSquared + bSquared == cSquared || aSquared + cSquared == bSquared || bSquared + cSquared == aSquared) { printf("直角三角形\n"); } else if (aSquared + bSquared > cSquared && aSquared + cSquared > bSquared && bSquared + cSquared > aSquared) { printf("锐角三角形\n"); } else { printf("钝角三角形\n"); } } else { printf("无法构成三角形\n"); } } int main() { int a, b, c; printf("请输入三角形的三条边长:\n"); scanf("%d %d %d", &a, &b, &c); triangleType(a, b, c); return 0; } ``` 额外需要注意的逻辑点: 1. 输入的边长应为正整数。 2. 注意数据类型的范围,防止溢出。 3. 考虑边界情况,如输入为 0 或负数的处理。 [2025-01-09 12:04:06 | AI写代码神器 | 400点数解答]