作业帮 > 综合 > 作业

用c编写程序求凸多边形面积

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 16:57:46
用c编写程序求凸多边形面积
/*整体思路,将凸多边形拆分为多个三角形,例如输入四个点1,2,3,4,则该四点组成的凸四边形面积为S123+S134.以此类推,请帮忙找出下面程序中出现的问题.
#include
#include
float l(int a,int b)
{
float l;
int x[100],y[100];
l=sqrt((double)fabs((double)(x[a]-x[b])*(x[a]-x[b]))+fabs((double)(y[a]-y[b])*(y[a]-y[b])));
return l;
}
float S(int a,int b,int c)
{
float s,S;
s=(l(a,b)+l(a,c)+l(b,c))/2.0;
S=s*sqrt((s-l(a,b))*(s-l(a,c))*(s-l(b,c)));
return S;
}
int main ()
{
int N,i,j,a,b=1,c=2;
float s=0.0;
int x[100],y[100];
scanf("%d",&N);
for(i=0,j=0;i
#include
#include
int x[100],y[100];//定义全局的x,y数组
float l(int a,int b)
{
float l;
//int x[100],y[100];//问题就出在这里,应答将其定义为全局的,不然每次都是局部的总返回零
l=sqrt((double)fabs((double)(x[a]-x[b])*(x[a]-x[b]))+fabs((double)(y[a]-y[b])*(y[a]-y[b])));
return l;
}
float S(int a,int b,int c)
{
float s,sum;
s=(l(a,b)+l(a,c)+l(b,c))/2.0;
sum=sqrt(s*(s-l(a,b))*(s-l(a,c))*(s-l(b,c))); //这里的海伦公式也有问题
return sum;
}
int main ()
{
int N,i,j,a=0,b=1,c=2;//a也要初始化为零
float s=0.0;
scanf("%d",&N);
for(i=0,j=0;i