【题目描述】
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少,精确到小数点后两位。
【输入】
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
【输出】
输出也是一行,输出三角形的面积,精确到小数点后两位。
【输入样例】
0 0 4 0 0 3
【输出样例】
6.00
代码
#include<cstdio>
#include<cmath>
int main(){
float x1=0,x2=0,x3=0,y1=0,y2=0,y3=0;
double a=0,b=0,c=0,area=0,p=0;//面积计算后有可能越界float
scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );//a边边长
b=sqrt( (x3-x1)*(x3-x1) + (y3-y1)*(y3-y1) );//b边边长
c=sqrt( (x2-x3)*(x2-x3) + (y2-y3)*(y2-y3) );//c边边长
p=(a+b+c)/2.0;//半周长
area=sqrt( p*(p-a)*(p-b)*(p-c) );//海伦公式
printf("%.2lf",area);
return 0;
}