• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wypisac ile i jakich elementów jest w tablicy?

Object Storage Arubacloud
0 głosów
920 wizyt
pytanie zadane 11 listopada 2015 w C i C++ przez danielek110795 Użytkownik (820 p.)

Witam, mam takie cos:

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


#define CVAR 30

void losuj(int tab[CVAR])
{
    srand( time( NULL ) );
    unsigned int i=0;
    for(i; i<CVAR; i++){
        tab[i] = rand()%11;
    }
}

void wypisz_tablice(int tab[CVAR])
{
    unsigned int i=0;
    for(i; i<CVAR; i++){
        printf("%d element ma wartosc %d \n",i,tab[i]);
    }
}

int main()
{
    int tab[CVAR];
    losuj(tab);
    wypisz_tablice(tab);

    return 0;
}

 

Tablica wypelnai się losowymi liczbami i je wypisuje. Musze jeszcze jakśzrobic aby ponizej wypisywalo coś takiego:

Liczba 0 zostaa wylosowana x razy.

Liczba 1 zostałą wyosowana x razy.

.... i tak dalej aż do 10 bo z tylu liczb losuje.

Nie mam pojęcia jak to zrobić, ktoś pomoże? Musi byc napisane z funkcjami.

4 odpowiedzi

0 głosów
odpowiedź 11 listopada 2015 przez niezalogowany
Jaki jest twój zasób wiedzy? Nie chcę proponować rozwiązania, które może wykraczać poza zasób teorii, którą przerobiłeś.

Nie przerabiałeś jeszcze programowania obiektowego raczej?
komentarz 11 listopada 2015 przez danielek110795 Użytkownik (820 p.)
Nie. To zadanie pojawilo sie przy operacjach na tablicach (np. sortowanie).
komentarz 11 listopada 2015 przez niezalogowany
Skorzystaj z tego co napisał @furas, przy takim zasobie wiedzy ciężko o wymyślenie czegoś lepszego.
0 głosów
odpowiedź 11 listopada 2015 przez furas Maniak (53,800 p.)

Zrób tablicę na dziesięć elementów i każdej nadaj wartość zero - będzie służyć na zliczanie wylosowanych liczb. Nazwijmy tablicę "ilosci".

Potem za pomocą `for` przeglądaj wylosowane liczby i jak będzie zero to wtedy "ilosci[0]++", jak będzie jedynka to wtedy "ilosci[1]++". ... lub ogólniej "ilosci[wylosowana_liczba]++". Możesz nawet zliczać już podczas losowania tych liczb.

Jak już będziesz miał policzone to możesz to wypisać korzystająć z `for`.

Liczba "x" zostala wylosowana "ilosci[x]" razy.

komentarz 11 listopada 2015 przez niezalogowany
Miałem to samo zaproponować, tylko tablica powinna być na 11 elementów, a nie na 10 (losowane liczby to {0,1,2,...,10})
komentarz 11 listopada 2015 przez furas Maniak (53,800 p.)

no faktycznie, teraz widzę, że tam jest rand()%11 więc powinna być na jedenaście elementów.

0 głosów
odpowiedź 11 listopada 2015 przez Radfler VIP (101,030 p.)

Mógłbyś napisać funkcję policz, która jako argumenty przyjmowałaby tablicę oraz wartość, którą policzyć (ewentualnie jeszcze rozmiar tablicy).

size_t policz(int tab[], int wartosc);

Implementacja takiej funkcji jest bardzo prosta, jak masz wątpliwości to pytaj! ;)

komentarz 11 listopada 2015 przez Radfler VIP (101,030 p.)

Przykładowa implementacja (powinno działać):

#include <stddef.h>

size_t policz(int tab[], int wartosc) {
  size_t ilosc = 0;
  for(int i = 0; i < CVAR; ++i) {
    if(tab[i] == wartosc) {
      ++ilosc;
    }
  }
  return ilosc;
}
0 głosów
odpowiedź 11 listopada 2015 przez Bravo555 Gaduła (3,970 p.)

Jedna rzecz: odradzam używanie makrodefinicji, tj. #define CVAR 30. Używasz tego tylko i wyłącznie jako stałej, ale kompilator jej nie widzi i jeżeli coś kiedyś pójdzie nie tak (co prawda w tym przykładzie nie ma jak, ale warto zadbać o dobre praktyki) nie zawiadomi cię o tym.

Lepiej użyć const int CVAR = 30;

Modyfikator const tworzy nie zmienną, lecz stałą.

Podobne pytania

0 głosów
1 odpowiedź 432 wizyt
pytanie zadane 8 czerwca 2020 w C i C++ przez fortuna Początkujący (310 p.)
+1 głos
2 odpowiedzi 1,899 wizyt
pytanie zadane 7 listopada 2018 w C i C++ przez Młody programista Obywatel (1,200 p.)
0 głosów
1 odpowiedź 350 wizyt
pytanie zadane 12 grudnia 2016 w C i C++ przez devi Początkujący (320 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...