Time Limit: 2000/1000 MS
(Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Total Submission(s): 16308 Accepted
Submission(s): 8316
1 const int MAXPOINT = 105;
2 struct Point{ //定义点结构
3 double x,y;
4 }p[MAXPOINT];
5 double getS(Point a,Point b,Point c) //返回三角形面积
6 {
7 return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y)*(c.x - a.x))/2;
8 }
9 double getPS(Point p[],int n) //返回多边形面积。必须确保 n>=3,且多边形是凸多边形
10 {
11 double sumS=0;
12 for(int i=1;i<=n-1;i++)
13 sumS+=getS(p[1],p[i],p[i+1]);
14 return sumS;
15 }
题目代码:
1 #include <iostream>
2 #include <iomanip>
3 using namespace std;
4 const int MAXPOINT = 105;
5 struct Point{ //定义点结构
6 double x,y;
7 }p[MAXPOINT];
8 double getS(Point a,Point b,Point c) //返回三角形面积
9 {
10 return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y)*(c.x - a.x))/2;
11 }
12 double getPS(Point p[],int n) //返回多边形面积。必须确保 n>=3,且多边形是凸多边形
13 {
14 double sumS=0;
15 for(int i=1;i<=n-1;i++)
16 sumS+=getS(p[1],p[i],p[i+1]);
17 return sumS;
18 }
19 int main()
20 {
21 int n;
22 cout<<setiosflags(ios::fixed)<<setprecision(1);
23 while(cin>>n){
24 if(n==0) break;
25 for(int i=1;i<=n;i++)
26 cin>>p[i].x>>p[i].y;
27 cout<<getPS(p,n)<<endl;
28 }
29 }
Freecode : www.cnblogs.com/yym2013
原文:http://www.cnblogs.com/yym2013/p/3535556.html