Program ma liczyć odległość euklidesową między punktami, jednak jest złe wyjście (tylko jedna odpowiedź jest dobra, druga nie). Podaje przykładowe wejście i wyjście:
Wejście:
Pierwsza linia
wejścia n (1 <= n <= 100) określa liczbę zestawów danych. Każdy
zestaw składa się z czterech liczb zmiennoprzecinkowych odpowiadających
dwóm punktom o współczędnych x_1, y_1 oraz x_2, y_2 (-1000 <= x_i,
y_i <= 1000).
Wyjście:
Dla każdego zestawu danych wypisz długość odcinka zaokrągloną do trzech miejsc po przecinku.
Przykładowe wejście:
2
1.0 1.0 2.0 2.0
-3.0 1.5 3.0 1.5
Przykładowe wyjście:
1.414 <- to się u mnie zgadza
6.000 <- tu mam inny wynik , jak to możliwe skorow pierwszym przypadku zwraca dobry wynik?
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
float euklides(float x1, float y1, float x2, float y2)
{
float odleglosc;
odleglosc=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
return odleglosc;
}
int main() {
int n;
float suma=0,x,x2,y,y2;
cin>>n;
float punkty[n][2];
for (int i=0;i<n;i++)
{
cin>>punkty[i][0]; //wczytywanie punktów
cin>>punkty[i][1];
}
for (int i=0;i<n;i++)
{
x=punkty[i][0];
y=punkty[i][1];
x2=punkty[i+1][0];
y2=punkty[i+1][1];
suma=suma+euklides(x,y,x2,y2);
printf("%.3f",suma);
printf("\n");
suma=0;
}
return 0;
}