C语言编程求多边形面积, (1)输入任意三点以上坐标,计算此多边形面

C语言编程求多边形面积,(1)输入任意三点以上坐标,计算此多边形面积;(2)输入任意一点坐标计算此时已经改变形状的多边形面积;... C语言编程求多边形面积,
(1)输入任意三点以上坐标,计算此多边形面积;
(2)输入任意一点坐标计算此时已经改变形状的多边形面积;
展开
 我来答
cccchh2011靓丽
推荐于2018-03-08 · TA获得超过524个赞
知道小有建树答主
回答量:637
采纳率:14%
帮助的人:133万
展开全部
输入边数 n, 输入 多边形各顶点 x,y 坐标,逆时针顺序 (保证 叉乘积 为 正)。
各顶点 x,y 坐标 减去 a[0][0]。以 a[0][0] 为主 计算各三角形面积并累加。

#include <stdio.h>
#include <stdlib.h>

main( )
{
int i,j,n;
double s=0;
double a[15][2];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
scanf("%lf",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
a[i][j]=a[i][j]-a[0][0];
for(i=1;i<n-1;i++)
{
s = s + 0.5*(a[i][0]*a[i+1][1]-a[i+1][0]*a[i][1]);
}
printf("%.2lf",s);
return 0;
}
追问
测试数据1 输出错误

错误输出:
1.00
期望输出:
5.00

测试数据2 输出错误

错误输出:
-10000.00
期望输出:
15000.00

测试数据3 输出错误

错误输出:
-1067.50
期望输出:
984.50

测试数据4 输出错误

测试数据5 输出错误

错误输出:
-1000.00
期望输出:
1100.00

都错了啊
追答
// 改正:a[i][j]=a[i][j]-a[0][j];
// 不是 -a[0][0], 是 a[0][j]

#include <stdio.h>
#include <stdlib.h>
main( ){int i,j,n;
double s=0;double a[15][2];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
scanf("%lf",&a[i][j]);
for(i=1;i<n;i++)
for(j=0;j<2;j++)
a[i][j]=a[i][j]-a[0][j];
for(i=1;i<n-1;i++){
s = s + 0.5* ( a[i][0] *a[i+1][1] - a[i+1] [0] * a[i][1] );
}
printf("%.2lf",s);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式