★实验任务
给定一个三角形的三个顶点的坐标,求它的面积。输入确保三个顶点不共线,且面积S
满足(0<S<10^10)。
★数据输入
输入为标准输入, 输入共三行,每行三个整数X,Y,Z表示顶点坐标。
★数据输出
输出仅一行,为空间三角形的面积,答案保留到小数点后两位。
输入示例 输出示例
0 0 0 0.50
0 0 1
0 1 0
★提示
用海伦公式求三角形面积:
S=sqrt(p*(p-a)*(p-b)*(p-c));
其中S为三角形面积
a,b,c为三角形的边。
p=(a+b+c)/2;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
__int64 x1,x2,x3,y1,y2,y3,z1,z2,z3;
long double a,b,c,p,s;
scanf("%I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d",&x1,&y1,&z1,&x2,&y2,&z2,&x3,&y3,&z3);
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)+(z1-z3)*(z1-z3));
c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)+(z2-z3)*(z2-z3));
p=(a+b+c)/2.0;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2Lf",s);
return 0;
}