通过坐标计算三角形面积

 

描述

平面上有一个三角形,它的三个顶点坐标分别为(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()

猜你喜欢

转载自blog.csdn.net/zxdspaopao/article/details/84454744