[C]Zliczanie elementów w tablicy dwuwymiarowej.
-
- Użytkownik
- Posty: 95
- Rejestracja: 12 wrz 2010, o 17:27
- Płeć: Mężczyzna
- Podziękował: 49 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Witam. We fragmencie mojej pracy domowej muszę zliczyć liczby w tablicy dwuwymiarowej. Wiem jak rozwiązać ten problem, gdy mam szukaną liczbę na dłoni (np. policzyć, ile jest "5" w tablicy AxB). Nie mogę wpaść na pomysł, jak rozwiązać ten problem, gdy muszę wyświetlić wszystkie liczby z przedziału <0, 10> Przecież nie będę robił tego używając if'ów. Proszę o pomoc.
-
- Użytkownik
- Posty: 95
- Rejestracja: 12 wrz 2010, o 17:27
- Płeć: Mężczyzna
- Podziękował: 49 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Przepraszam, moja wina. Powinienem napisać bardziej przejrzyście o co mi chodzi. Otóż mam napisać program, który dla tablicy dwuwymiarowej AxB wygeneruje pseudolosowo elementy tablicy z zakresy <0, 10>, wyświetli jej zawartość z podziałem na kolumny i wiersze, oraz obliczy ile razy każda liczba występuje w tablicy, wyświetlając tylko te liczby, których ilość jest różna od zera. Tylko to co podkreślone zostało mi do zrealizowania.
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Robisz tablice int na 10 elementów, indeks tablicy oznacza liczbę, a wartość przy tym indeksie oznacza ilość wystąpień. Odpalasz pętle iterując po 2 wymiarach Twojej tablicy z losowymi liczbami i zwiększasz wartości o 1 w tej 10-elementowej. Na koniec programu iterujesz po tablicy 10-elementowej i jeżeli wartość jest różna od zera to wypisujesz ile razy dana liczba się pojawiła.
-
- Użytkownik
- Posty: 95
- Rejestracja: 12 wrz 2010, o 17:27
- Płeć: Mężczyzna
- Podziękował: 49 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Zrozumiałem o co ci chodzi, ale do tej pory nie wpadłem jak to zapisać. Mogę liczyć na jeszcze jakąś podpowiedź?
-
- Użytkownik
- Posty: 199
- Rejestracja: 24 maja 2012, o 23:36
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 5 razy
- Pomógł: 30 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
ta zliczająca tablica \(\displaystyle{ [4][2][5]...[3][6]}\)oznacza, że 0 wystąpiło \(\displaystyle{ 4}\) razy a \(\displaystyle{ 9 - 3}\) razy.
a jeżeli będą w tej tablicy również inne liczby niż z tego zakresu, to oczywiście
Kod: Zaznacz cały
for(i...)
for(j...)
zliczajaca[twojaMacierz[i][j]] += 1;
Kod: Zaznacz cały
if( twojaMacierz[i][j] >= 0 && twojaMacierz[i]j] <= 10 )
-
- Użytkownik
- Posty: 1130
- Rejestracja: 1 lis 2008, o 22:33
- Płeć: Mężczyzna
- Podziękował: 72 razy
- Pomógł: 156 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Potrzebna będzie raczej tablica 11-elementowa, jeśli liczby w twojej macierzy są ze zbioru \(\displaystyle{ \{0,...,10\}}\)
teraz iterujesz po twojej macierzy, sprawdzając jakie tam są liczby po kolei
czyli np.
Jak to czytać? Powiedzmy że i,j wyraz macierzy jest równy 5. Wtedy wartość tab[5] zmieni się z 0 na 1 (zwiększy się o 1).
teraz iterujesz po twojej macierzy, sprawdzając jakie tam są liczby po kolei
czyli np.
Kod: Zaznacz cały
int tab[10]; (zadbaj o to żeby w tej tablicy były same zera, np. zadeklaruj globalnie)
dla każdego wyrazu macierzy AxB:
tab[macierz[i][j]]++;
-
- Użytkownik
- Posty: 95
- Rejestracja: 12 wrz 2010, o 17:27
- Płeć: Mężczyzna
- Podziękował: 49 razy
[C]Zliczanie elementów w tablicy dwuwymiarowej.
Dziękuję za pomoc. lemoid już mnie nakierował na rozwiązanie, ale dzięki tobie Andreas zauważyłem, że nie wyzerowałem tablicy, dlatego całe czas miałem kosmiczne wyniki.