Napisz funkcję która zwraca ilosć elementów różnych w tablicy jednowymiarowej liczb typu float,
hmm? jak to można wykonać
Posortuj, przeleć całą tablicę porównując każdą parę elementów. Jeśli różne - inkrementuj.
a wiesz, jak porówynywać liczby float
Jeśli nie masz tam NaN to wystarczy operator ==
.
PS: liczb zmiennoprzecinkowych nie powinno się porównywać za pomocą ==
. W tym konkretnym przypadku ma to sens, ale wiedz, że prawie zawsze jest to złe rozwiązanie. Patrz tutaj.
Nie musisz sortować tablicy, wystarczy porównywać pierwszą ze wszystkimi następnymi, jeśli znajdziesz taką samą to opuszczasz pętlę, jeśli przeleciałeś do końca i nie znalazłeś takiej samej to inkrementujesz.
Zasadniczo imho zadanie słabe bo jak porównywać floaty to raczej powinno się sprawdzać jakiś przedział. Z drugiej strony z przedziałem to zadanie by się odrobinkę pokomplikowało. ;-)
No z przedziałem jest taki problem, że jak sobie epsilon ustawisz na np. 0.1
, to ile unikalnych wartości jest w [0.1, 0.15, 0.2, 0.25, 0.3, 0.35]
?