回 帖 发 新 帖 刷新版面

主题:急求答案!!!!

按顺序输入一个多边形各端点的坐标值,计算并输出该多边形的周长.要求用二维数组做.急!!!

回复列表 (共4个回复)

沙发

如果端点是按顺序给的就直接求一次欧氏距离就可以,如果是打乱顺序就用凸包

板凳

各位,帮我看下,这样错哪了??

program c_sum;
  var
    a:array[1..100,1..2] of real;
    c:array[1..100] of real;
    sum:real;
    n,i,j:integer;
  begin
    readln(n);
    for i:=1 to n do
       for j:=1 to 2 do
         read(a[i,j]);
    for i:=1 to n-1 do
        c[i]:=sqrt(sqr(a[i,1]-a[i+1,1])+sqr(a[i,2]-a[i+1,2]));
    c[n]:=sqrt(sqr(a[n,1]-a[1,1])+sqr(a[n,2]-a[1,2]));
    for i:=1 to n do sum:=sum+c[i];
    writeln('c=',sum:8:3);
  end.

3 楼

我用的是TP+XP系统,没看出什么问题来,以下为我测试的数据(加粗为程序输出):
[QUOTE]4
0 0
0 1
1 1
1 0
[B]c=   4.000[/B]
[/QUOTE][QUOTE]3
0 0
1 0
0.5 0.86602540378443864676372317075294
[B]c=   3.000[/B]
[/QUOTE]
如果还有问题把测试数据发上来。

4 楼

鄙人记得在vijos上貌似有~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册