计算三角形面积
题目描述
平面上有一个三角形,它的三个顶点坐标分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少。
输入格式
输入仅一行,包括 6 6 6 个双精度浮点数,分别对应 x 1 , y 1 , x 2 , y 2 , x 3 , y 3 x_1,y_1,x_2,y_2,x_3,y_3 x1,y1,x2,y2,x3,y3。
输出格式
输出也是一行,输出三角形的面积,精确到小数点后两位。
样例 #1
样例输入 #1
0 0 4 0 0 3
样例输出 #1
6.00
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main(){
double n1,n2,n3,p,S;
double x1,x2,x3,y1,y2,y3;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
n1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
n2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
n3=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
p=(n1+n2+n3)/2;
S=sqrt(p*(p-n1)*(p-n2)*(p-n3));
printf("%.2lf\n",S);
return 0;
}
这里引用了一个公式:海伦公式