Найти периметр десятиугольника - C (СИ) (74800)
Формулировка задачи:
Даны действительные числа x1,y1,x2,y2..x10,y10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (х1,у1)(х2,у2)...(х10,у10). Определить процедуру вычисления расстояния между двумя точками, заданными своими координатами! Проверить существование всех треугольников в полученном 10-угольнике!
вот код, помогите пожалуйста понять, почему всегда треугольники не существуют, что не верно в коде?
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
int Raschet(float x1, float y1, float x2, float y2)
{
float d;
d=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
return d;
}
int main()
{
int i,n,s,j;
int kx,ky,kx1,kx2;
n=10;
int x[n], y[n] ,dl[n],dl2[n];
srand (time (NULL));
for (i=0; i<n; i++)
{
x[i]=(rand()%10);
y[i]=(rand()%10);
printf("Tochka %i= %2i ; %i\n",i,x[i],y[i]);
}
s=Raschet(x[i],y[i],x[n],y[n]);
for (j=1; j<n; j++)
{
dl[0]=Raschet(x[0],y[0],x[0+1],y[0+1]);
dl[j]=Raschet(x[1], y[1], x[j], y[j]);
dl2[j]=Raschet(x[j],y[j],x[n],y[n]);
}
for (j=0; j<n-2; j++)
{
kx=dl[j];
kx1=dl[j+2];
kx2=dl2[j];
if ((kx<kx1+kx2) && (kx1<kx+kx2) && (kx2<kx+kx1))
{
printf("%i-yi Tpeyg. syshestvyet\n ",j+1);
}
else {printf("%i-yi Tpeyg. ne syshestvyet\n ",j+1);}
}
for (i=0; i<(n-1); i++)
{
s=s+Raschet(x[i],y[i],x[i+1],y[i+1]);
}
printf("p= %i",s);
}Решение задачи: «Найти периметр десятиугольника»
textual
Листинг программы
int Raschet(float x1, float y1, float x2, float y2)// функция принимает переменные типа float, возвращает типа int
{
float d;
d=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
return d;// переменная d объявлена типа float, а значение функция будет возвращать типа int. Нужно в объявлении функции переделать, что тип она возвращает float, а не int
}