写一段C语言代码,输入3个浮点数分别代表三角形的三条边长,能够判断输入的三条边是否能组成角形,进一步判断该三一角形为何种三角形(普通三等腰三角形,角形,/三角形,直角三角形,等腰直角)
时间: 2024-12-23 20:16:15 浏览: 7
c习题源代码.txt
在C语言中,你可以创建一个函数来接受三个浮点数作为输入,检查它们是否满足构成三角形的条件,并根据边长比例确定三角形的类型。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h> // 引入数学库以计算平方根
// 定义常量表示不同类型三角形
#define TRIANGLE_TYPE普通的三角形 // 普通三角形
#define SCALED_TRIANGLE型等腰三角形 // 等腰三角形
#define RIGHT_TRIANGLE型直角三角形 // 直角三角形
#define ISOSCELES_RIGHT_TRIANGLE型等腰直角 // 等腰直角三角形
// 判断三角形类型
enum TriangleType {
triangle_type = TRIANGLE_TYPE,
scaled_triangle,
right_triangle,
isosceles_right_triangle
};
double checkTriangle(double a, double b, double c) {
if (a + b <= c || a + c <= b || b + c <= a) {
return -1; // 无法构成三角形
}
// 检查等腰三角形
if (a == b || b == c || a == c) {
if (fabs(a - b) < 0.00001 && fabs(b - c) < 0.00001) {
triangle_type = SCALED_TRIANGLE;
}
// 对于非等边情况,如果是直角三角形
else if (fabs(a * a + b * b - c * c) < 0.00001) {
triangle_type = RIGHT_TRIANGLE;
if (a == b || a == c) {
triangle_type = ISOSCELES_RIGHT_TRIANGLE;
}
}
return triangle_type;
} else {
// 如果都不是等腰,就是普通三角形
triangle_type = TRIANGLE_TYPE;
return triangle_type;
}
}
int main() {
float side1, side2, side3;
printf("请输入三角形的三条边长:\n");
scanf("%f %f %f", &side1, &side2, &side3);
enum TriangleType type = checkTriangle(side1, side2, side3);
switch (type) {
case SCALED_TRIANGLE:
printf("这是一个等腰三角形。\n");
break;
case RIGHT_TRIANGLE:
printf("这是一个直角三角形。\n");
break;
case ISOSCELES_RIGHT_TRIANGLE:
printf("这是一个等腰直角三角形。\n");
break;
default:
printf("这是一个普通的三角形。\n");
}
return 0;
}
```
阅读全文