向量叉求面积。
设三点A,B,C。
S = (AxBy + BxCy + CxAy - Axcy - Bxay - CxBy)/2;
#include <iostream>
using namespace std;
struct Lu
{
double x;
double y;
};
int main()
{
Lu Hui[100];
int n;
while (cin >> n && n)
{
for (int i = 0; i < n; i++)
cin >> Hui[i].x >> Hui[i].y;
double Yi = 0;
for (int i = 1; i < n - 1; i++)
Yi += (Hui[0].x * Hui[i].y + Hui[i].x * Hui[i + 1].y + Hui[i + 1].x * Hui[0].y - Hui[0].x * Hui[i + 1].y - Hui[i].x * Hui[0].y - Hui[i + 1].x * Hui[i].y)/2.0;
cout << fixed;
cout.precision(1);
cout << Yi << endl;
}
return 0;
}