我在学校有一个程序,我必须告诉大家它在做什么。我得到的程序是计算面积和多边形质心的程序。现在,我几乎知道所有事情,但是在计划中有两个数字,我什么都不能做。 -10001和-47。如果我替换它们,程序不会使计算正确。你能告诉我为什么-10001和47?如果我不是加-10001和-47的caculating是正确的..面积和多边形的质心
#include <stdio.h>
#include <math.h>
typedef struct
{
double x,y;
} POINT;
POINT c, o, p[10000];
double a, q=0.0;
int n;
double ccw(POINT a, POINT b, POINT c)
{
return a.x*b.y + a.y*c.x + b.x*c.y - c.x*b.y - b.x*a.y - c.y*a.x;
}
int main(void)
{
int i, j;
o.x=-10001;
o.y=-47;
**/* THIS IS WHAT*/**
while (scanf("%d", &n) > 0)
{
if(!n)
break;
for (i = 0; i < n; i++)
scanf("%lf %lf", &p[i].x, &p[i].y);
a=0;
for(i=0; i<n; i++)
a += ccw(o, p[i], p[(i+1)%n]);
c.x = c.y = 0.0;
for(i=0; i<n; i++)
{
q = ccw(o, p[i], p[(i+1)%n])/(3.0*a);
c.x += q*(o.x + p[i].x + p[(i+1)%n].x);
c.y += q*(o.y + p[i].y + p[(i+1)%n].y);
}
printf("%.3lf\n", fabs(a)/2.0);
printf("%.3lf %.3lf\n", c.x, c.y);
return 0;
}
}
它是C还是C++?它不能兼而有之。 –
@PreferenceBean它是C. –
那么你为什么使用C++标签! –