[c++] abs(a) - problem z tablicą

0

Witam ponownie,

Choć dla wyznaczenia wartości bezwzględnej z x wystarczy abs(x) to z wyznaczeniem wartości bezwzględnej tablicy nie jest już tak kolorowo.
Dlatego, czy istnieje prosty sposób skorzystania z funkcji abs() mając do dyspozycji np dwuwymiarową, wcześniej zadeklarowaną i wypełnioną tablicę np. a[b][c] ?

Z góry dziękuję za pomoc

Pozdrawiam
Owad88

0

A co to jest wartość bezwzględna tablicy? Napisz dokładniej, o co ci chodzi.

0

Jeżeli chcesz wyznaczyć wartość bezwzględną dla wszystkich elementów tablicy, możesz użyć pętli zagnieżdżonych po wszystkich elementach:

for (int i = 0; i < a; i++)
  for (int j = 0; j < b; j++)
    tab[i][j] = abs(tab[i][j])
0

Witam,

Dziękuję za posty!
Mój problem wynikał z tego, że do abs() chciałem wstawić tablicę wypełnioną liczbami zmiennoprzecinkowymi.
Nie napisałem tego gdyż myślałem, że jest to bez znaczenia, a po zapoznaniu się z http://www.cplusplus.com/reference/clibrary/cmath/ okazało się
że dla tego typu sytuacji używa się fabs().

czyli dla tablicy wygląda to fabs(a[b][c]);

Pozdrawiam
Owad88

0

Nie, wcale tak nie wygląda! MYŚL.

double fabs ( double x );
float fabs ( float x );
long double fabs ( long double x );

Widzisz tam gdzieś wersję funkcji z tablicą jako argumentem? NIE. Zresztą skąd pomysł ze zapis a[b][c] powoduje przekazanie gdziekolwiek tablicy? Gdybyś chciał przekazać do funkcji tablicę to wywołałbyś funkcja(a) a nie funkcja(a[b][c]). To co napisałeś powoduje przekazanie elementu tablicy który znajduje się na pozycji [b][c]. Jeśli pomyślałeś właśnie "ale takiego elementu nie ma!" to dobrze pomyślałeś. Przypominam ze C++ nie sprawdza czy czasem nie przekraczasz granic tablicy, stąd też brak jakichkolwiek komunikatów na ten temat...

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