第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;
}