C语言 编写函数,输入三角形三边之长,求三角形面积。

大家帮帮忙,谢谢。

以下是使用C语言编写函数,输入三角形三边之长,求三角形面积的代码:

```c
#include <stdio.h>
#include <math.h>

// 根据三条边长度计算三角形面积
float triangleArea(float a, float b, float c) {
float p, area;
p = (a + b + c) / 2; // 计算半周长
area = sqrt(p * (p - a) * (p - b) * (p - c)); // 使用海伦公式计算面积
return area;
}

int main() {
float a, b, c;
float area;

printf("输入三角形的三条边长:
");
scanf("%f %f %f", &a, &b, &c);

// 判断输入是否合法
if (a + b <= c || a + c <= b || b + c <= a) {
printf("输入的三条边长度不合法!
");
return 1;
}

area = triangleArea(a, b, c);

printf("该三角形面积为:%f
", area);

return 0;
}
```

代码中,我们首先在`triangleArea`函数中,根据输入的三条边长,使用海伦公式计算三角形的面积,并返回计算结果。

在`main`函数中,我们使用`scanf`函数从输入中获取三角形三条边的长度。接着,我们通过判断输入的三条边是否满足三角形的三边关系确定输入是否合法。如果输入不合法,程序就直接提示并退出。如果输入合法,我们调用`triangleArea`函数计算三角形的面积,并输出结果。

需要注意的是,我们在使用海伦公式计算三角形面积时,首先需要计算三角形的半周长,然后使用`sqrt`函数计算面积的平方根。因此需要包含头文件`math.h`。

运行结果如下:

```
输入三角形的三条边长:
3 4 5
该三角形面积为:6.000000
```
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-22
#include<stdio.h>
#include<math.h>

float area(float a,float b,float c);

int main()
{
float a,b,c,s;

scanf("%f%f%f",&a,&b,&c);
if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)
{
s=area(a,b,c);
printf("%.2f\n",s);
}
else
{
printf("Error!\n");
}
return 0;
}
float area(float a,float b,float c)
{
float s,area;

s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
return area;
}本回答被网友采纳
第2个回答  2023-03-12
求三角形面积。根据网上的搜索结果,我可以使用海伦公式来计算三角形面积,即S=sqrt(p*(p-a)(p-b)(p-c)),其中p=(a+b+c)/2。以下是一个可能的函数实现:
#include <stdio.h>#include <math.h>// 定义一个函数,输入三个浮点数作为三角形的边长,返回三角形的面积double triangle_area(double a, double b, double c) { // 判断是否能构成三角形
if (a + b > c && a + c > b && b + c > a) { // 使用海伦公式计算面积
double p = (a + b + c) / 2; double s = sqrt(p * (p - a) * (p - b) * (p - c)); return s;
} else { // 不能构成三角形,返回-1表示错误
return -1;
}
}int main() { // 测试函数
double a, b, c; printf("请输入三边长度:\n"); scanf("%lf %lf %lf", &a, &b, &c); double s = triangle_area(a, b, c); if (s > 0) { printf("三角形面积为:%.2f\n", s);
} else { printf("不能构成三角形!\n");
} return 0;
}