Ilość wystąpień liczb w tablicy

Odpowiedz Nowy wątek
2014-12-23 19:27
0

Mamy tablicę posortowaną rosnąco. Np. {2 2 2 2 3 3 3 4 5 5}. Jak policzyć ilość wystąpień poszczególnych liczb? Chodzi mi o to żeby wypisać to w następujący sposób:

2 4
3 3
4 1
5 5
edytowany 1x, ostatnio: furious programming, 2014-12-24 01:28

Pozostało 580 znaków

2014-12-23 19:31
1
  1. Jeżeli masz tablicę posortowaną jak w przykładzie:
    for(size_t i=0,count=0;i<=tbSize;++i)
    {
    if((!i)||((i!=tbSize)&&(tb[i-1]==tb[i]))) ++count;
    else
     {
      cout<<tb[i-1]<<' '<<count<<endl;
      count=1;
     }
    }
  2. Jeżeli zakres liczb w tablice jest ograniczony i znany
    unsigned cnt[10]={0};
    for(size_t i=0;i<tbSize;++i) ++cnt[tb[i]];
    for(size_t i=0;i<10;++i) if(cnt[i]) cout<<i<<' '<<cnt[i]<<endl;
  3. w przeciwnym przypadku użyj map.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 3x, ostatnio: _13th_Dragon, 2014-12-23 20:48
Po co mapa? Tablica jest posortowana. - bogdans 2014-12-23 19:36
W bardziej życiowym przykładzie i tak skończyłoby się na mapie :P - spartanPAGE 2014-12-23 19:47
@bogdans, ten przykład - owszem, ale może rzeczywiście trzeba dodać przykład. - _13th_Dragon 2014-12-23 19:53

Pozostało 580 znaków

2014-12-23 20:01
0

a co oznacza tbSize?

Size - w języku angielskim rozmiar; tb - typowy skrót od table (czyli tablica); - _13th_Dragon 2014-12-23 20:04

Pozostało 580 znaków

2014-12-23 20:32
0
for(size_t i=0,count=0;i<=tbSize;++i)
  {
   if((!i)||((i!=tbSize)&&(tb[i-1]==tb[i]))) ++count;
     {
      cout<<tb[i-1]<<' '<<count<<endl;
      count=1;
     }
   else ++count;
  }

To moje początki wiec sory za głupie pytania, ale po sprawdzeniu tego kodu wyskakuje mi taki błąd

[Error] 'else' without a previous 'if'

dodanie znaczników <code> i <code class="cpp"> - @furious programming

edytowany 1x, ostatnio: furious programming, 2014-12-24 01:29
poprawiłem, to skutek pisania na kolanie :D - _13th_Dragon 2014-12-23 20:48
@misio23 - wstawiaj kod w znaczniki kolorujące składnię; - furious programming 2014-12-24 01:29

Pozostało 580 znaków

2014-12-23 20:43
0
if (...) ++count;
{
    ...
}
else ++count;
 

Jako że po if jest instrukcja ++count to te klamry już nie należą do if. Czyli else nie ma odpowiadającego mu ifa. Poza tym jaki sens powtarzać ++count?

if (...)
{
    ...
}
 
++count;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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