HDU ACM 11 2036 改革春风吹满地

向量叉求面积。

设三点A,B,C。

S = (AxBy + BxCy + CxAy - Axcy - Bxay - CxBy)/2;

#include 
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;
}


你可能感兴趣的:(HDU ACM 11 2036 改革春风吹满地)