利用海伦公式求三角形面积
#include<iostream>
#include<cmath>
using namespace std;
bool Triangle(double a,double b,double c)
{
if(a*a+b*b+c*c>0&&a>0&&b>0&&c>0)
{
if(a+b-c>0&&a+c-b>0&&b+c-a>0)
return 1;
}
else
return 0;
}
double Area(double a,double b,double c)
{
double TriArea,S;
S=(a+b+c)/2.0;//S为半周长
TriArea=sqrt(S*(S-a)*(S-b)*(S-c));
return TriArea;
}
int main(void)
{
double a,b,c;
cin>>a>>b>>c;
if(Triangle(a,b,c)==1)
{
cout<<Area(a,b,c)<<endl;
}
if(Triangle(a,b,c)==0)
{
cout<<"错误:不能构成三角形!"<<endl;
}
return 0;
}
已知三角形三边长,则可利用海伦公式求三角形面积。
在计算面积之前,先要判断三边长度是否能构成三角形。
则满足下列条件之一即可:
(代码中采用条件1去判断)
1:
两边之和大于第三边
2:
两边之差小于第三边
注:S为半周长,TriArea为三角形面积,Triangle()函数为判断是否能构成三角形,返回值为1,则能构成三角形,返回值为0,则不能构成三角形。