设构成多边形的坐标串为(xi,yi)(i=1,2,……,n),求此多边形面积A。
#include<math.h>
#define N 10
float Area(float (*x)[2],int n)
{float sum=0;
int i=0,j;
for(;i<n;i++)
{j=i+1;
if(j==n)
j=0;
sum+=(x[j][0]+x[i][0])*(x[j][1]-x[i][1]);
}
sum=(1/2)*(fabs(sum));
return sum;
}
main()
{int n,i,j;
float x[N][2],(*p)[2],area;
printf("输入多边形的边数:");
scanf("%d",&n);
printf("输入多边形各顶点的坐标\n");
for(i=0;i<n;i++)
{j=0;
printf("(X%d,Y%d):",i,i);
scanf("%f,%f",&x[i][j],&x[i][j+1]);
}
p=x;
area=Area(p,n);
printf("The area of the polygon is :%f\n",area);
}
请教各位大虾,我的程序到底错在何处,为什么我每次运行结果都是0.0000
感激不尽!!!
[此贴子已经被作者于2006-11-1 18:42:38编辑过]