1. 程式人生 > >湖南師範大學2018年大學生程式設計競賽新生賽 C 小X的多邊形

湖南師範大學2018年大學生程式設計競賽新生賽 C 小X的多邊形


題目描述

眾所周知的是,小X特別喜歡由線條組成的形狀,比如說凸多邊形,這一天小X正在紙上畫著喜歡的凸多邊形,這時候小Y走了過來,指著一張圖片上的多邊形,問小X知道這個圖形的面積麼,這可把小X難住了,聰明的你一定能夠幫助小X解決這個問題,對吧~

輸入描述:

多邊形上最多有六個點,順時針or逆時針給定每個點座標(兩個整數表示),保證無多餘的點並且沒有點重複

輸出描述:

輸出一個整數,表示凸多邊形的面積,結果四捨五入。

示例1

輸入

3
0 0
1 0
2 2

輸出

1
示例2

輸入

5
-4 -2
1 -3
3 2
-1 4
-4 2

輸出

35

程式碼:

#include <iostream>
using namespace std;
int main() {
	double s;
	int n, i, x[10], y[10];
	cin>>n;
	for(i = 0; i < n; i++) {
		cin>>x[i]>>y[i];
	}
	s = 0;
	for(i = 1; i < n - 1; i++) {/*計算面積*/
		s += 1.0*((x[i]-x[0])*(y[i+1]-y[0])-(x[i+1]-x[0])*(y[i]-y[0]))/2;
	}
	printf("%.0lf\n", s+0.4);
	return 0;
}