从键盘上输入三个实数,它们分别代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序;如果能构成三角形,求出三角形的面积(取小数2位)
时间: 2024-10-17 21:07:01 浏览: 37
```c
#include <stdio.h>
#include <math.h>
// 判断是否能组成三角形
int is_valid_triangle(float a, float b, float c) {
return (a + b > c) && (a + c > b) && (b + c > a);
}
// 计算三角形面积
float triangle_area(float a, float b, float c) {
float s = (a + b + c) / 2; // 半周长
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
float num1, num2, num3;
printf("请输入三条线段的长度(以空格分隔): ");
scanf("%f %f %f", &num1, &num2, &num3);
if (!is_valid_triangle(num1, num2, num3)) {
printf("这三个长度无法构成三角形.\n");
} else {
char type[10];
switch (1) { // 检查三角形类型
case (fabs(num1 - num2) == fabs(num2 - num3)):
strcpy(type, "等腰三角形");
break;
case (fabs(num1 - num2) == fabs(num1 - num3)):
strcpy(type, "等腰三角形");
break;
case (fabs(num1 - num2) == 0 || fabs(num2 - num3) == 0 || fabs(num1 - num3) == 0):
strcpy(type, "等边三角形");
break;
default:
strcpy(type, "不等边三角形");
break;
}
printf("三角形类型: %s\n", type);
float area = triangle_area(num1, num2, num3);
printf("三角形面积(保留两位小数): %.2f\n", area);
}
return 0;
}
```
阅读全文