17:计算三角形面积

总时间限制: 1000ms       内存限制: 65536kB

描述

平面上有一个三角形,它的三个顶点坐标分别为(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可由以下公式求得:

而公式里的p为半周长(周长的一半):

计算两点间距离的公式:设两个点A、B以及坐标分别为 、  ,则A和B两点之间的距离为:

源码

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float x1,x2,x3,y1,y2,y3,a,b,c,p,s;
    scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
    //a = sqrt(pow((x1-x2),2)+pow((y1-y2),2));
    a = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));  //计算两点间的距离,两种方式均可
   // b = sqrt(pow((x2-x3),2)+pow((y2-y3),2));
    b = sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
   // c = sqrt(pow((x3-x1),2)+pow((y3-y1),2));
    c = sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
    p = (a+b+c)/2;  //周长的一半
    s = sqrt(p*(p-a)*(p-b)*(p-c));  //海伦公式

    printf("%.2f\n",s);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40371180/article/details/88110576