1.海伦公式:
a、b、c为三角形三条边的长度,p是三角形周长一半
2.叉积求面积:叉积=三角形面积=叉积/2
#include<iostream> #include<stdio.h> #include<math.h> using namespace std; struct node { int x; int y; }; node p[3]; double chaji(node p0,node p1,node p2) { return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y); } double dis( node p1,node p2 ) { return sqrt( (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y) ); } int main() { for(int i=0;i<3;i++) scanf("%d%d",&p[i].x,&p[i].y); double s,a,b,c,x; a=dis(p[0],p[1]); b=dis(p[1],p[2]); c=dis(p[0],p[2]); x=(a+b+c)/2; s=sqrt( x*(x-a)*(x-b)*(x-c) ); printf("%.2lf ",s); s=fabs( chaji(p[0],p[1],p[2])/2 ); printf("%.2lf ",s); }