Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Program liczący najczęstszą wartosc


N3ONx

Pytanie

Opublikowano

Witam,

robie program który za pomoca tablic tworzy 1000 pseudolosowych licz, a nastepnie zliczna która liczba najczęście występowała (zakres 1-100).

Tworzenie losowych licz zrobiłem ale z wyświetleniem która najczęściej się wyświetlała mam problem.

Program nie może być wykonany za pomocą srant.

Z góry dziękuję za pomoc :)

Język: C++

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

Opublikowano
#include <iostream>
#include <random>
#include <iomanip> // std::setfill

int main()
{
    srand(time(0));

    std::uint32_t tablica[1000];
    for (auto&& a : tablica)
        a = 1 + (rand() % 100);

    std::vector<std::pair<std::uint32_t, std::uint32_t>> liczba_wystapien;
    for (std::uint32_t i = 1; i <= 100; i++)
        liczba_wystapien.push_back(std::make_pair(i, 0u));

    for (auto&& a : tablica)
    {
        for (auto&& b : liczba_wystapien)
        {
            if (a == b.first)
            {
                b.second++;
                break;
            }
        }
    }

    // opcjonalnie przesortowanie po ilosci wystapien
    std::sort(liczba_wystapien.begin(), liczba_wystapien.end(), [](auto const& a, auto const& b) -> bool { return a.second > b.second; });

    for (auto& x : liczba_wystapien)
        std::cout << std::setfill(' ') << std::setw(3) << x.first << " wystapila " << x.second << " razy." << std::endl;
}

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...