【一道练习题】

面基

时间限制:1000ms   内存限制:65536kb

通过率:107/134 (79.85%)    正确率:107/319 (33.54%)

题目描述

按顺时针或逆时针顺序输入一个简单多边形的每个顶点坐标,求这个多边形的面积。

在几何形状中,简单多边形是由直线,非相交的线段或“边”组成的扁平形状,其成对连接以形成封闭路径。(百度百科)

输入

第一行一个整数nn,表示顶点数

接下来n行,每行22个整数x,yx,y表示一个顶点坐标

输出

对于每组数据,输出一行,一个浮点数表示面积(保留7位小数)

输入样例

3
0 0
100 100
100 0

输出样例

5000.0000000

数据范围

3≤n≤1000003≤n≤100000

0≤x,y≤200

#我的一点思路,不知道对不对:使用向量叉乘计算面积;

for example:SABC=0.5*|a×b|;

以下是代码:

#include <stdio.h>
#include <stdlib.h>
int main( ){
int i,j,n;
double s=;
double a[][];
scanf("%d",&n);
for(i=;i<n;i++)
for(j=;j<;j++)
scanf("%lf",&a[i][j]);
for(i=;i<n;i++)
for(j=;j<;j++)
a[i][j]=a[i][j]-a[][j];
for(i=;i<n-;i++){
s = s + 0.5* ( a[i][] *a[i+][] - a[i+] [] * a[i][] );
}
s=s>0?s:-s;
printf("%.7lf",s);
return ;
}

我的一点疑问:

1.为什么最后s会出现负值呢?增加了一个判断条件判断s是否大于零可以让这道题AC,但我不明白这个正负号反映出来的几何问题。

2.*注意考虑凹多边形。

如果能有人解答,再感谢不过!!

[C语言] 关于计算多边形面积的一点问题的更多相关文章

  1. poj 1265 Area【计算几何:叉积计算多边形面积+pick定理计算多边形内点数+计算多边形边上点数】

    题目:http://poj.org/problem?id=1265 Sample Input 2 4 1 0 0 1 -1 0 0 -1 7 5 0 1 3 -2 2 -1 0 0 -3 -3 1 0 ...

  2. 利用python计算多边形面积

    最近业务上有一个需求,给出多边形面积. Google了一下,发现国内论坛给的算法都是你抄我我抄你,也不验证一下是否正确, 从 博客园到csdncsdn 然后传播到国内各个角落...真是无力吐槽了. 直 ...

  3. js版根据经纬度计算多边形面积(墨卡托投影)

    [摘要:var earthRadiusMeters = 6371000.0; var metersPerDegree = 2.0 * Math.PI * earthRadiusMeters / 360 ...

  4. POJ 3907 Build Your Home | 计算多边形面积

    给个多边形 计算面积 输出要四舍五入 直接用向量叉乘就好 四舍五入可以+0.5向下取整 #include<cstdio> #include<algorithm> #includ ...

  5. leaflet计算多边形面积

    上一篇介绍了使用leaflet绘制圆形,那如何计算圆形的面积呢? 1.使用数学公式计算,绘制好圆形后,获取中心点以及半径即可 2.使用第三方工具计算,如turf.js. 这里turf的area方法入参 ...

  6. C语言初学 计算三角形面积问题

    #include<stdio.h> #include<math.h> #include<stdlib.h> int main() { float a,b,c,s,a ...

  7. hdu-2036求任意多边形面积

    改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  8. 【改革春风吹满地 HDU - 2036 】【计算几何-----利用叉积计算多边形的面积】

    利用叉积计算多边形的面积 我们都知道计算三角形的面积时可以用两个邻边对应向量积(叉积)的绝对值的一半表示,那么同样,对于多边形,我们可以以多边形上的一个点为源点,作过该点并且过多边形其他点中的某一个的 ...

  9. HDU_2036——多边形面积,行列式计算

    Problem Description “ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地. 谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也 ...

随机推荐

  1. linux中的alias命令详解

    功能说明:设置指令的别名.语 法:alias[别名]=[指令名称]参 数 :若不加任何参数,则列出目前所有的别名设置.举    例 :ermao@lost-desktop:~$ alias       ...

  2. Linux下串口操作

    一.Linux下访问串口 串口位置:/dev/tty** 在Linux系统中,串口设备是通过串口终端设备文件来访问的,也就是通过访问/dev/ttyS0./dev/ttyS1./dev/ttyS2./ ...

  3. The Business Of Open Source

    http://oss-watch.ac.uk/resources/businessofopensource by Matthew Langham, Indiginox on 3 February 20 ...

  4. 前端知识-控制div标签的显示与隐藏

    //将附件信息列表进行隐藏 var tAppendixDiv = document.getElementById("AppendixDiv"); tAppendixDiv.styl ...

  5. LeetCode 1140. Stone Game II

    原题链接在这里:https://leetcode.com/problems/stone-game-ii/ 题目: Alex and Lee continue their games with pile ...

  6. 程序复杂程度(步长) N

    我们知道计算机在运算时速度是固定的,程序运行的时间就与程序复杂程度有关.例如我们计算1-10相加 与 1-100相加,后者就要比前者多10倍时间. 例1  找出n个数中最大的一个  max= n[0] ...

  7. 过滤器的API

    1.API a.生命周期(和servletcontext相似): (1)创建:服务器启动的时候创建(执行init方法). (2)销毁:服务器关闭的时候销毁(执行destory方法). b.filter ...

  8. 洛谷 P2312 解方程 题解

    P2312 解方程 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 [1,m][1,m] 内的整数解(\(n\) 和 \(m\) 均为 ...

  9. uni-app快速上手

    uni-app支持通过 可视化界面.vue-cli命令行 两种方式快速创建项目. 通过 HBuilderX 可视化界面可视化的方式比较简单,HBuilderX内置相关环境,开箱即用,无需配置nodej ...

  10. 关于移动虚拟机后,linux网卡启动异常问题解决

    废话不多说,直接上解决办法. 首先执行命令:ifconfig -a 会发现原来是eth0, 而现在变成了eth1了 然后我们编辑规则配置信息: vim /etc/udev/rule.d/70-pers ...