细妹按靓,成都二诊成绩查询,vr渲染器下载
Input输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示。
输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。
Output对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。
每个实例的输出占一行。
Sample Input
3 0 0 1 0 0 1 4 1 0 0 1 -1 0 0 -1 0
Sample Output
0.5 2.0
#include<stdio.h> #include<math.h> #include<iostream> using namespace std; struct point { double x,y; }a[105]; int n; double point_area() { double sum=0; for(int i = 2; i < n; i++) { sum+=(a[i].x-a[1].x)*(a[i+1].y-a[1].y)-(a[i+1].x-a[1].x)*(a[i].y-a[1].y); } sum=fabs(sum/2.0); printf("%.1lf\n",sum); } int main() { while(cin>>n&&n) { if(n<3) return 0; for(int i=1;i<=n;i++) { cin>>a[i].x>>a[i].y; } point_area(); } return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论