C语言编程 输入一个三角形,判断能否构成三角形,若可以则输出三角形的类型(等边,等腰,直角三角形)
时间: 2024-12-14 22:14:09 浏览: 41
在C语言中,判断一个给定的三角形是否有效以及其类型,通常需要用户提供三个边长作为输入。有效的三角形满足两边之和大于第三边的条件。判断三角形类型的依据是三边长度的关系:
- 等边三角形:所有三条边相等;
- 等腰三角形:存在两条边相等;
- 直角三角形:其中一个角度为90度,对应着两个边的平方和等于第三个边的平方。
以下是判断并分类的一个基本函数示例:
#include <stdio.h>
#include <math.h> // 使用sqrt()函数
// 判断是否构成三角形
int isValidTriangle(int a, int b, int c) {
if (a + b > c && a + c > b && b + c > a)
return 1; // 有效三角形
return 0; // 无效三角形
}
// 判断三角形类型
char triangleType(int a, int b, int c) {
if (a == b && b == c) // 等边三角形
return 'E'; // E代表等边
else if (a == b || b == c || a == c) // 等腰三角形
return 'M'; // M代表等腰
else if (fabs(a*a + b*b - c*c) < 1e-9) // 浮点数比较,近似等于0表示直角三角形
return 'R'; // R代表直角
else
return 'U'; // U代表不确定,这里假设是普通三角形
}
int main() {
int side1, side2, side3;
printf("请输入三角形的三条边长(以空格隔开): ");
scanf("%d %d %d", &side1, &side2, &side3);
if (isValidTriangle(side1, side2, side3)) {
switch (triangleType(side1, side2, side3)) {
case 'E':
printf("这是一个等边三角形。\n");
break;
case 'M':
printf("这是一个等腰三角形。\n");
break;
case 'R':
printf("这是一个直角三角形。\n");
break;
default:
printf("这是一个普通三角形。\n");
break;
}
} else {
printf("这不是一个有效的三角形。\n");
}
return 0;
}
相关推荐


















