编写函数,根据三边长度求取三角形面积(三边长度默认为 3,4,5)。编写 main 函数对该函数进行测试,考虑不输入任何边长度、输入一条边长度、输入二条边长度和输入三条边长度几种情况下,分别输出函数计算后的面积
时间: 2024-10-13 13:05:47 浏览: 32
在C语言中,我们可以编写一个海伦公式(Heron's formula)的函数来计算三角形的面积。这个公式适用于已知任意三角形的三边长度。不过需要注意的是,这个公式只适用于合法的三角形,即任意两边之和大于第三边。以下是函数的实现和`main`函数中的测试:
```c
#include <math.h> // 引入数学库,用于sqrt
double triangle_area(double a, double b, double c) {
// 检查是否能构成三角形
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("Invalid sides for a triangle.\n");
return 0; // 或者返回一个错误代码
}
}
int main() {
// 正常情况:输入三边长度
double sides[3] = {3, 4, 5};
double area1 = triangle_area(sides[0], sides[1], sides[2]);
printf("Triangle with sides 3, 4, and 5 has an area of %.2f.\n", area1);
// 不完整输入:只输入一边
double side2 = 6; // 假设额外的一边长度
double area2 = triangle_area(side2, side2, 0); // 使用无效的0作为第三边
printf("With one side of length 6, area cannot be calculated.\n");
// 非法输入:只输入两条边
double side3 = 3, side4 = 4;
double area3 = triangle_area(side3, side4, 0); // 无法构成三角形
printf("With sides 3 and 4, no third side specified, so area can't be computed.\n");
// 输入三条边,其中一条重复
double side5 = 3, side6 = 3, side7 = 3;
double area4 = triangle_area(side5, side6, side7);
printf("With all sides equal to 3, it's not a valid triangle, area is %.2f.\n", area4);
return 0;
}
```
以上代码展示了如何处理各种输入情况,包括正常三角形、单边、双边和重复边的情况。
阅读全文