为了能到远方,脚下的每一步都不能少.|

luckydrawbox

园龄:4个月粉丝:1关注:2

题解 B2031 【计算三角形面积】

看到这道题,一种相似的感觉油然而生——我们瞬间想到了P5708 【深基2.习2】三角形面积

让我们看看题目中的一句话:

一个三角形的三边长分别是 aabbcc,那么它的面积为 p(pa)(pb)(pc)\sqrt{p(p-a)(p-b)(p-c)} ,其中 p=12(a+b+c)p=\frac{1}{2}(a+b+c)

突然好像恍然大悟了!我们虽然只知道点的坐标,但可以通过公式 AB=(AxBx)2+(AyBy)2AB=\sqrt{(A_x-B_x)^2+(A_y-B_y)^2} 求出边的长度,最后利用此题的公式,马上求出答案!

Code

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
double x11,y11,x2,y2,x3,y3,a,b,c,p,ans;//x1,y1在<cmath>库中被定义了,需要重定一个变量 
int main()
{
    cin>>x11>>y11>>x2>>y2>>x3>>y3;
    a=sqrt((x11-x2)*(x11-x2)+(y11-y2)*(y11-y2));
    b=sqrt((x11-x3)*(x11-x3)+(y11-y3)*(y11-y3));
    c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
    p=0.5*(a+b+c);
    ans=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%.2f",ans);
	return 0;
}

本文作者:luckydrawbox

本文链接:https://www.cnblogs.com/luckydrawbox/p/18526678

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   luckydrawbox  阅读(15)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起