用c编写程序求凸多边形面积/*整体思路,将凸多边形拆分为多个三角形,例如输入四个点1,2,3,4,则该四点组成的凸四边形面积为S123+S134.以此类推,请帮忙找出下面程序中出现的问题.#include #includef
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/21 16:49:25
![用c编写程序求凸多边形面积/*整体思路,将凸多边形拆分为多个三角形,例如输入四个点1,2,3,4,则该四点组成的凸四边形面积为S123+S134.以此类推,请帮忙找出下面程序中出现的问题.#include #includef](/uploads/image/z/11253163-67-3.jpg?t=%E7%94%A8c%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F%E6%B1%82%E5%87%B8%E5%A4%9A%E8%BE%B9%E5%BD%A2%E9%9D%A2%E7%A7%AF%2F%2A%E6%95%B4%E4%BD%93%E6%80%9D%E8%B7%AF%2C%E5%B0%86%E5%87%B8%E5%A4%9A%E8%BE%B9%E5%BD%A2%E6%8B%86%E5%88%86%E4%B8%BA%E5%A4%9A%E4%B8%AA%E4%B8%89%E8%A7%92%E5%BD%A2%2C%E4%BE%8B%E5%A6%82%E8%BE%93%E5%85%A5%E5%9B%9B%E4%B8%AA%E7%82%B91%2C2%2C3%2C4%2C%E5%88%99%E8%AF%A5%E5%9B%9B%E7%82%B9%E7%BB%84%E6%88%90%E7%9A%84%E5%87%B8%E5%9B%9B%E8%BE%B9%E5%BD%A2%E9%9D%A2%E7%A7%AF%E4%B8%BAS123%2BS134.%E4%BB%A5%E6%AD%A4%E7%B1%BB%E6%8E%A8%2C%E8%AF%B7%E5%B8%AE%E5%BF%99%E6%89%BE%E5%87%BA%E4%B8%8B%E9%9D%A2%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E9%97%AE%E9%A2%98.%23include+%23includef)
用c编写程序求凸多边形面积/*整体思路,将凸多边形拆分为多个三角形,例如输入四个点1,2,3,4,则该四点组成的凸四边形面积为S123+S134.以此类推,请帮忙找出下面程序中出现的问题.#include #includef
用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
用c编写程序求凸多边形面积/*整体思路,将凸多边形拆分为多个三角形,例如输入四个点1,2,3,4,则该四点组成的凸四边形面积为S123+S134.以此类推,请帮忙找出下面程序中出现的问题.#include #includef
#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