帮忙写一个判断三角形类型的c语言函数 要求判断 钝角 直角 等边 瑞角 等腰等 并打印三角形的英文名称
时间: 2024-09-20 07:10:47 浏览: 69
c++用函数写输入三边——判断三角形形状并计算面积周长
5星 · 资源好评率100%
在C语言中,你可以编写一个函数来判断三角形的类型。首先,我们需要三个输入值,通常是三边的长度。这里是一个简单的函数示例,它会检查并打印出三角形的类型:
```c
#include <stdio.h>
#include <math.h>
// 定义三角形类型常量
enum TriangleType {
RIGHT = 0, // 约等于直角三角形
ACUTE, // 锐角三角形
OBTUSE, // 钝角三角形
EQUILATERAL, // 等边三角形
ISOSCELES // 等腰三角形
};
// 判断三角形类型并打印
void classify_triangle(double a, double b, double c) {
if (a + b <= c || a + c <= b || b + c <= a) {
printf("这不是有效的三角形。\n");
return;
}
double s = (a + b + c) / 2; // 半周长
double area = sqrt(s * (s - b) == abs(b - c) && abs(c - a) == 0) { // 等腰三角形
printf("这是一个等腰三角形。\n");
if (area * 4 == pow(a, 2) + pow(b, 2) + pow(c, 2)) {
printf("同时也是一个直角三角形(等腰直角三角形)。\n");
return;
}
} else if (a == b || a == c || b == c) { // 等边三角形
printf("这是一个等边三角形。\n");
} else {
double angle_a = acos((b * b + c * c - a * a) / (2 * b * c)); // 角A的余弦值
double angle_b = acos((a * a + c * c - b * b) / (2 * a * c));
double angle_c = acos((a * a + b * b - c * c) / (2 * a * b));
if (angle_a > M_PI / 2) {
printf("这是一个钝角三角形。\n");
} else if (angle_a == M_PI / 2) {
printf("这是一个直角三角形。\n");
} else {
printf("这是一个锐角三角形。\n");
}
}
}
int main() {
double side1, side2, side3;
printf("请输入三角形的三条边长:\n");
scanf("%lf %lf %lf", &side1, &side2, &side3);
classify_triangle(side1, side2, side3);
return 0;
}
```
阅读全文