Jak obliczyć odległość dwóch punktów?

0

Napisz funkcję, która dostaje jako parametry 4 liczby zmiennoprzecinkowe i traktuje je jako współrzędne 2 punktów na płaszczyźnie. Funkcja ma zwracać odległość między punktami.
Chodzi mi tylko o 1 część kodu, co zrobiłem w nim zle ?Przy próbie kompilacji wyswietla sie błąd undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
i nie wiem jak sobie z nim poradzić.

 #include <stdio.h>
#include <math.h>
float para(float xa, float xb, float ya, float yb)
{
    return sqrt((ya - xa) -(ya - xa) + (yb - xb) - (yb - xb));

0

Wklej cały kod

1

Źle linkujesz. Dodaj do opcji -lm

0
#include <stdio.h>
#include <math.h>
float para(float xa, float xb, float ya, float yb)
{
    return sqrt((ya - xa) * (ya - xa) + (yb - xb) * (yb - xb));
}
int main()
{
    float xa, xb, ya, yb;
    scanf("%f%f%f%f", &xa, &xb, &ya, &yb);
    printf("%f", para(xa, xb, ya, yb));
    return 0;
}
0

zmieniłem ten kod ale dalej nie działą dlaczego ?

 #include <stdio.h>
#include <math.h>
double dlugosc(int a, int b, int c, int d)
{
    double x, y;
    x = a - b;
    y = c - d;
    return hypot(x, y);
}
int main()
{
    double a, b, c, d;
    scanf("%lf%lf%lf%lf", &a, &b, &c, &d);
    printf("%lf", dlugosc(a, b, c, d));
    return 0;
}
3

Tak się mszczą krótkie i nic nie mówiące nazwy zmiennych. Z Twojego pierwszego programu myślę, że a, b, c, d mają inne znaczenie niż to co tutaj próbujesz wyliczyć.

0

dalej nie wiem co mam zle

2

Zacznij od logicznego nazwania parametrów funkcji.

0

Nie wiem czy rozumiem o czym tutaj mowa, ale kod działa http://ideone.com/PQTooZ jak powinien, przynajmniej mi się tak wydaje.

0

Jeżeli (a,b) i (c,d) to współrzędne, to odległości na osi x między tymi punktami nie liczy się raczej a - b.

0

Czemu nie zrobić po ludzku?

#include <stdio.h>
#include <math.h>
int main()
  {
   double ax,ay,bx,by;
   scanf("%lf%lf%lf%lf",&ax,&ay,&bx,&by);
   printf("%lf",hypot(ax-bx,ay-by));
   return 0;
  }
0

teraz lepiej czy nie o to chodzilo ?

 #include <stdio.h>
#include <math.h>
double dlugosc(int xa, int xb, int ya, int yb)
{
    return hypot((ya - xa), (yb - xb));
}
int main()
{
    double xa, xb, ya, yb;
    scanf("%lf%lf%lf%lf", &xa, &xb, &ya, &yb);
    printf("%lf", dlugosc(xa, xb, ya, yb));
    return 0;
}

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