每新加入一个点 ,算其与最后一个加入的点 和远点组成的三角新面积.
凹的部分算出是负值,所以不必处理
#include <iostream>
#include<conio.h>
#include <math.h>
using namespace std;
class dian
{
public:
double x;
double y;
};
int main()
{
int n,i,j;
double leng1,leng2,leng3,p,s,numj=0;
cin>>n;
dian *d = new dian[n];
for(i=0;i<n;i++)
{
cin>>d[i].x>>d[i].y;
}
d[n].x=d[0].x;
d[n].y=d[0].y;
for(i=0;i<n;i++)
{
s=d[i].x*d[i+1].y-d[i].y*d[i+1].x;
numj+=s;
}
numj=fabs(numj/2);
printf("%.2f",numj);
return 0;
}
#include<conio.h>
#include <math.h>
using namespace std;
class dian
{
public:
double x;
double y;
};
int main()
{
int n,i,j;
double leng1,leng2,leng3,p,s,numj=0;
cin>>n;
dian *d = new dian[n];
for(i=0;i<n;i++)
{
cin>>d[i].x>>d[i].y;
}
d[n].x=d[0].x;
d[n].y=d[0].y;
for(i=0;i<n;i++)
{
s=d[i].x*d[i+1].y-d[i].y*d[i+1].x;
numj+=s;
}
numj=fabs(numj/2);
printf("%.2f",numj);
return 0;
}