Nie wiemy nic o typie zwracanym w funkcji policz_odleglosc (najwyraźniej nie przekopiowałeś całości), jeżeli nie jest to reprezentacją liczby zmiennoprzecinkowej (np. float, double) to automatycznie reszta po przecinku będzie ucinana... Być może to było przyczyną błędu u Ciebie.
Załóżmy jednak, że zwracamy typ double - może się okazać, że wynik będzie wyświetlany w notacji wykładniczej np. 4.23099e+008 dla relatywnie dużych liczb, co nie będzie zgodnie z Twoimi oczekiwaniami, stąd zastosujmy formatowanie fixed, umożliwi nam to wyświetlanie cyfr w tradycyjnej formie. Piszesz, że chciałbyś otrzymać liczbę do dwóch cyfr po przecinku, więc również sformatujmy wyświetlanie, tym razem poprzez setprecision(2). Pamiętaj, że skoro manipulujemy strumieniem wyjścia powyższymi komendami to musimy dołączyć nagłówek <iomanip> ; )
Finalnie będzie to coś takiego:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
double policz_odleglosc(double x1, double y1, double x2, double y2) {
double d, pom1, pom2;
pom1 = pow((x2 - x1), 2.0); // (x2-x1)^2
pom2 = pow((y2 - y1), 2.0); // (y2-y1)^2
d = sqrt(pom1 + pom2); // calosc
return d;
}
int main() {
double x1, y1, x2, y2;
cout << "Podaj punkt x1 oraz y1: ";
cin >> x1 >> y1;
cout << "Podaj punkt x2 oraz y2: ";
cin >> x2 >> y2;
cout << "Odleglosc miedzy punktami wynosi: " << setprecision(2) << fixed << policz_odleglosc(x1, y1, x2, y2);
return 0;
}
Tutaj możesz znaleźć więcej informacji na ten temat: Obsługa strumienia cout : )