用c语言编写:给定三个正整数作为三角形的三条边,判断是否构成三角形以及所属三角形的种类
时间: 2024-10-17 09:10:37 浏览: 181
在C语言中,我们可以编写一个函数来判断给定的三条正整数能否组成一个有效的三角形,并确定其类型(等边、等腰或普通三角形)。首先,我们需要检查这三条边是否满足三角形的基本条件,即任意两边之和大于第三边。然后,根据三边长度的关系来分类:
```c
#include <stdio.h>
// 函数声明
int is_triangle(int a, int b, int c);
enum TriangleType { EQUILATERAL, ISOSCELES, SCALENE } classify_triangle(int a, int b, int c);
int main() {
int sides[3];
printf("请输入三条边的长度(正整数): ");
scanf("%d %d %d", sides, sides + 1, sides + 2); // 输入三条边
if (is_triangle(sides[0], sides[1], sides[2])) {
enum TriangleType triangle_type = classify_triangle(sides[0], sides[1], sides[2]);
switch (triangle_type) {
case EQUILATERAL:
printf("这是一个等边三角形.\n");
break;
case ISOSCELES:
printf("这是一个等腰三角形.\n");
break;
case SCALENE:
printf("这是一个普通三角形.\n");
break;
}
} else {
printf("这三个数不能构成一个三角形.\n");
}
return 0;
}
// 判断是否能构成三角形
int is_triangle(int a, int b, int c) {
return (a + b > c) && (b + c > a) && (a + c > b);
}
// 分类三角形类型
enum TriangleType classify_triangle(int a, int b, int c) {
if (a == b && b == c) return EQUILATERAL; // 等边三角形
if (a == b || a == c || b == c) return ISOSCELES; // 等腰三角形
return SCALENE; // 普通三角形
}
```
阅读全文