【描述】
编写程序,求按顺时针方向输入n(0<n≤10)个顶点坐标的多边形周长。顶点坐标用结构表示。
【输入】
第一行输入正整数n;下面n行,每行两个浮点数,以空格间隔,为多边形各顶点的坐标。
【输出】
多边形的周长,精确到小数点后2位。
【输入示例】
4
0 0
0 1
1 1
1 0
【输出示例】
4.00
我写的这个只能拿到一半的分……
#include"stdio.h"//顺着第一个点连到最后一个点
#include"math.h"
int main(void)//每两点之间的长度为sqrt(a*a+b*b)
{
struct yk
{
double a;
double b;
};
int n;
scanf("%d",&n);
struct yk yk[n];
int i;
for(i = 0;i < n;i++)
{
scanf("%lf %lf",&yk[i].a,&yk[i].b);
}
double c = sqrt((yk[0].a - yk[n].a) * (yk[0].a - yk[n].a) + (yk[0].b - yk[n].b) * (yk[0].b - yk[n].b));
for(i = 0;i < n;i++)
{
c += sqrt((yk[i].a - yk[i + 1].a) * (yk[i].a - yk[i + 1].a) + (yk[i].b - yk[i + 1].b) * (yk[i].b - yk[i + 1].b));
}
printf("%.2f",c);
return 0;
}