Найти периметр n-угольника по координатам его вершин. - C (СИ)
Формулировка задачи:
Работа на функции, задание: Найти периметр n-угольника по координатам его вершин.
(сформировать функцию для вычисления длин его сторон по координатам вершин)
не могу понять, почему периметр считает неправильно, подскажите, пожалуйста
#include<stdio.h>
#include<math.h>
//функция для вычисления длины стороны по координатам
double L (double x1,double y1,double x2,double y2)//
{double l;//l-длина стороны
l=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
return l;//
}
int main(void)
{int k,n;//k-счетчик вершин, n-количество вершин
double p,x1,x2,y1,y2;//p-периметр, x1,x2,y1,y2-координаты концов стороны(отрезка)
while(1)
{printf("\nвведите количество вершин\n");
scanf("%d",&n);
if(n<3)
printf("\nмало вершин\n");
else
break;}
printf("\nвведите координаты первой вершины\n");
scanf("%lf%lf",&x1,&y1);//
for(k=1;k<n;k++)//
{printf("\nвведите координаты следующей вершины\n");
scanf("%lf%lf",&x2,&y2);
p+=L(x1,y1,x2,y2);//
x1=x2;//
y1=y2;//
}
printf("\n периметр %dугольника = %5.21lf\n",n,p);
return 0;
}Решение задачи: «Найти периметр n-угольника по координатам его вершин.»
textual
Листинг программы
double p=0.,x1,x2,y1,y2, x, y;