c语言求三角形周长和面积 不运用海伦公式
时间: 2024-10-24 17:11:41 浏览: 38
在C语言中,计算三角形的周长通常比较简单,只需要将三边相加即可。对于非直角三角形,计算面积可以利用毕达哥拉斯定理,即c² = a² + b²,然后通过这个等式解出最长边c,再根据面积公式A = 0.5 * a * b (a和b分别为其他两边),来避免直接使用海伦公式。
以下是示例代码:
```c
#include <stdio.h>
#include <math.h>
double get_perimeter(double a, double b, double c) {
return a + b + c;
}
double get_area(double a, double b, double c) {
if (a <= 0 || b <= 0 || c <= 0) {
printf("错误:边长不能为负或零.\n");
return 0;
}
if (a + b > c && a + c > b && b + c > a) { // 验证三角形构成条件
double s = (a + b + c) / 2; // 半周长
double area = sqrt(s * (s - a) * (s - b) * (s - c)); // 根据毕达哥拉斯定理计算面积
return area;
} else {
printf("错误:这不是一个有效的三角形.\n");
return 0;
}
}
int main() {
double a, b, c;
printf("请输入三角形的三条边长:\na = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
double perimeter = get_perimeter(a, b, c);
double area = get_area(a, b, c);
printf("三角形的周长是:%f\n", perimeter);
printf("三角形的面积是:%f\n", area);
return 0;
}
```
阅读全文