描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。
输入
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出
输出也是一行,输出三角形的面积,精确到小数点后两位。
使用海伦公式计算得出三角形面积,先通过两点间距离公式求出三条边的长度,并计算出半周长。
#include<stdio.h>
#include<math.h>
int main(){
float a,b,c,d,e,f;
scanf("%f %f %f %f %f %f",&a,&b,&c,&d,&e,&f);
float r1=sqrt((c-a)*(c-a)+(d-b)*(d-b));
float r2=sqrt((e-a)*(e-a)+(f-b)*(f-b));
float r3=sqrt((c-e)*(c-e)+(d-f)*(d-f));
float p=(r1+r2+r3)/2;
float s=sqrt(p*(p-r1)*(p-r2)*(p-r3));
printf("%.2f",s);
return 0;
}
海伦公式:S=√p (p-a) (p-b) (p-c) p为半周长。