hdu2036 改革春风吹满地

 1 #include<math.h>
 2 #include<stdio.h> 
 3 int main()
 4 {
 5     int i,n,a[110][2];
 6     double s;
 7     while(scanf("%d",&n),n)
 8     {
 9         for(s=i=0;i<n;i++)
10         scanf("%d%d",&a[i][0],&a[i][1]);
11         for(i=2;i<n;i++)
12         s+=(a[i][1]-a[i-1][1])*(a[0][0]-a[i][0])  //注意是有向面积,因为这里WA好多次!! 
13         -(a[i][0]-a[i-1][0])*(a[0][1]-a[i][1]);
14         printf("%.1f\n",fabs(s/2));//最后再取正 
15     }
16     return 0;
17 }
18 /*本题主要用到数学中的点到直线距离公式及三角形面积公式;
19 把第一个点设为顶点,依次求顶点与各个连续边组成的三角形的有向面积,
20 最后求和再取正即可!*/ 

 

posted on 2012-08-03 18:42  小花熊  阅读(184)  评论(0编辑  收藏  举报

导航