海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式。它是利用三角形的三条边的边长直接求三角形面积的公式。表达式为:S=√p(p-a)(p-b)(p-c),它的特点是形式漂亮,便于记忆。
【题目描述】
从键盘任意输入三个坐标点,判断这三点能不能构成三角形,如果能则输出三角形面积(小数位保留两位),如果不能则输出"No."。
【输入说明】
输入三行,每一行两个数字,表示一个点的笛卡尔坐标,两个数字之间用逗号隔开
【样例输入】
2,3
5,9
7,8
【样例输出】
7.50
代码实现
#include <stdio.h>
#include<math.h>
//求两点之间的距离
double Distance(int x1,int y1,int x2,int y2)
{
return sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
}
//判断是否能构成三角形。参数是三边长,返回值是真或假
int IsTriangle(double l1,double l2,double l3)
{
if(l1+l2>l3&&l1+l3>l2&&l2+l3>l1)return 1;
else return 0;
}
//求三角形面积。参数是三边长
double GetArea(double l1,double l2,double l3)
{
double p;
p=(l1+l2+l3)/2;
return sqrt(p*(p-l1)*(p-l2)*(p-l3));
}
int main()
{
int x1,x2,x3,y1,y2,y3;
double l1,l2,l3;
scanf("%d,%d",&x1,&y1);
scanf("%d,%d",&x2,&y2);
scanf("%d,%d",&x3,&y3);
l1=Distance(x1,y1,x2,y2);
l2=Distance(x1,y1,x3,y3);
l3=Distance(x2,y2,x3,y3);
if(IsTriangle(l1,l2,l3)==0)printf("No.");
else printf("%.2lf",GetArea(l1,l2,l3));
return 0;
}