您的位置:首页 > 其它

NYOJ题目1011 So Easy[II](数学几何)

2014-10-16 00:21 183 查看


So Easy[II]

时间限制:1000 ms  |  内存限制:65535 KB
难度:2

描述
这是一道基础的计算几何问题(其实这不提示大家也都看的出)。问题描述如下:

给你一个N边形。且N边形的点是由顺时针顺序给出,求这个N边形的面积。(3<N<100)

输入输入多组数据。

第一行输入一个N。

接下来N行每行有两个数a,b表示一个点。0<a,b<100(不会出现重复的点)输出输出N变形的面积,最终结果保留两位小数。(不要输出多余的信息)样例输入
378 28 94 19 35 97

样例输出
358.50

上传者ACM_钟诗俊

ac代码‘
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
double fx,fy,fx1,fy1,sum=0,x,y,x1,x2,y1,y2;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
fx=(x2-x1);
fy=(y2-y1);
for(i=2;i<n;i++)
{
scanf("%lf%lf",&x,&y);
fx1=(x-x1);
fy1=(y-y1);
sum+=((fx*fy1)-(fy*fx1))/2;
fx=fx1;
fy=fy1;
}
printf("%.2lf\n",fabs(sum));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: