Złe wyjście programu (odległość euklidesowa)

0

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;
}
0

Po skompilowaniu tego kodu mam problem z podawaniem danych. Jeśli chcę wpisać n danych to mogę tylko n-1. Błąd jest w pętli do podawania danych.

0
printf("%.3f bo licze dla danych euklides(x,y,x2,y2);\n",suma,x,y,x2,y2);

1 użytkowników online, w tym zalogowanych: 0, gości: 1