Odpowiedź:
Funkcja mogła by wyglądać w następujący sposób
int porownaj(int l1, int m1, int l2, int m2)
{
long long int u1, u2;
u1 = l1 * m2;
u2 = l2 * m1;
if(u1 == u2)
return 0;
else if(u1 > u2)
return 1;
else
return 2;
}
Nie możemy porównywać wyników dzielenia l1/m1 i l2/m2 ponieważ w wyniku zaokrągleń możemy otrzymać błędne wyniki porównania. Należy oba ułamki sprowadzić do wspólnego mianownika i porównać same liczniki.
u1 i u2 są w long long int aby nie przekroczyć zakresów przy mnożeniu l1*m2 oraz l2*m1
Wyjaśnienie: