Witam,
Zrobiłem sobie taką oto funkcję, obliczającą odległość między dwoma punktami w jakimś układzie współrzędnych (w tym przypadku między dwoma miastami):
...
#include <cmath>
...
int calculateDistanceBetweenCities(int x1, int y1, int x2, int y2)
{
int result;
result = abs(x1 - x2) + abs(y1 - y2);
cout << "wynik funkcji: " << result << endl;
return result;
}
Mam z nią pewien problem - kiedy umieściłem ją w swoim programie, działała w przypadku każdych danych wejściowych jakie sprawdziłem oprócz takiego zestawu (pokazuje wynik 1215446518):
x1 = 1; y1 = -2; x2 = -1; y2 = -3
Wtedy wyciąłem funkcję z programu i napisałem coś takiego:
#include <iostream>
#include <cmath>
using namespace std;
int calculateDistanceBetweenCities(int x1, int y1, int x2, int y2)
{
int result;
result = abs(x1 - x2) + abs(y1 - y2);
cout << "wynik funkcji: " << result << endl;
return result;
}
int main() {
cout << calculateDistanceBetweenCities(1, -2, -1, -3);
return 0;
}
I tutaj mamy małego wtf'a, ponieważ wynik działania drugiego programu jest prawidłowy (3) :D Może mi ktoś wyjaśnić o co chodzi?