问题描述:
输入四边4个顶点A,B,C,D的坐标(x,y),计算并输出四边形面积。
输入格式:
依次输入4个顶点A,B,C,D的坐标(x,y),四边形一定是凸四边形,整型,空格分隔。
输出格式:
输出实型,保留2位。
程序代码:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main() {
int x1, x2, x3, x4, y1, y2, y3, y4;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
double s1, s2, s3, s4, s;
s1 = 0.5 * fabs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2);//点1,2,3组成的三角形
s2 = 0.5 * fabs(x1 * y2 + x2 * y4 + x4 * y1 - x1 * y4 - x2 * y1 - x4 * y2);//点1,2,4组成的三角形
s3 = 0.5 * fabs(x1 * y3 + x3 * y4 + x4 * y1 - x1 * y4 - x3 * y1 - x4 * y3);//点1,3,4组成的三角形
s4 = 0.5 * fabs(x2 * y3 + x3 * y4 + x4 * y2 - x2 * y4 - x3 * y2 - x4 * y3);//点2,3,4组成的三角形
s = 0.5 * (s1 + s2 + s3 + s4);
cout << fixed << setprecision(2) << s << endl;
return 0;
}