三角形面积

网友投稿 661 2022-11-08

三角形面积

三角形面积

三角形面积

3000 ms  |  内存限制: 65535

2

每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标。(坐标值都在0到10000之间)

输入0 0 0 0 0 0表示输入结束

测试数据不超过10000组

输出 输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位) 样例输入

0 0 1 1 1 3 0 1 1 0 0 0 0 0 0 0 0 0

样例输出

1.0 0.5

这是个简单的数学几何题,我的做法是求出三条边的长度,然后用 海伦公式,求出面积,但是可能麻烦一点。

#include#includeint main(){ double x1,y1,x2,y2,x3,y3,a,b,c,n,s; while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)&&(x1!=0||y1!=0||x2!=0||y2!=0||x3!=0||y3!=0)) { a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)); c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); n=(a+b+c)/2; s=sqrt(n*(n-a)*(n-b)*(n-c)); printf("%.1lf\n",s); } return 0;}

另外一种好方法,就是向量积的知识了:以两个相交向量为临边的

平行四边形的面积是这两个向量的向量积的模,也就是等于他们模的乘积乘上

他们夹角的正弦值。

//向量的方法 #include#includeint main(){ int a,b,c,d,e,r,s; while(1) { scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&r); if(a==0&&b==0&&c==0&&d==0&&e==0&&r==0) return 0; s=(a*d+b*e+c*r)-(a*r+d*e+b*c); if(s<0) s=-s; printf("%.1f\n",s/2.0); }return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mybatis xml如何使用not in 某个集合的格式
下一篇:HDU 5785 Interesting (manacher+区间处理)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~