1. 程式人生 > >通過座標計算三角形面積

通過座標計算三角形面積

 

描述

平面上有一個三角形,它的三個頂點座標分別為(x1, y1), (x2, y2), (x3, y3),那麼請問這個三角形的面積是多少。

輸入

輸入僅一行,包括6個單精度浮點數,分別對應x1, y1, x2, y2, x3, y3。

輸出

輸出也是一行,輸出三角形的面積,精確到小數點後兩位。

 

樣例輸入

0 0 4 0 0 3

樣例輸出

6.00

提示

海倫公式:

假設在平面內,有一個三角形,邊長分別為a、b、c,三角形的面積S可由以下公式求得:

S=√[p(p-a)(p-b)(p-c)]

而公式裡的p為半周長:

p=(a+b+c)/2

C實現:

#include<stdio.h>
#include<math.h>
int main()
{
    float x1,y1,x2,y2,x3,y3;
    scanf("%f %f %f %f %f %f", &x1,&y1,&x2,&y2,&x3,&y3);
    double a,b,c,p,S;
    a=sqrt(fabs(pow(y2-y1,2))+fabs(pow(x2-x1,2)));
    b=sqrt(fabs(pow(y3-y1,2))+fabs(pow(x3-x1,2)));
    c=sqrt(fabs(pow(y2-y3,2))+fabs(pow(x2-x3,2)));
    p=(a+b+c)/2;
    S=sqrt(p*(p-a)*(p-b)*(p-c));
	printf("%0.2lf", S);
	return 0;
}

注:

求平方根:sqrt()

求浮點數的絕對值:fabs()