Napisać program w C++, który zapamiętuje i wyświetla na ekranie:
największą spośród stu losowych liczb całkowitych z przedziału [0..999], liczbę
wystąpień tej wartości.


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <map>

#include <algorithm>

int main() {

   srand(time(NULL)); //seed liczb pseudolosowych

   std::map<int, int> numbersMap; //mapa zliczajaca wystapienia kazdej z wylosowanych liczb

   for (int i = 0; i < 100; i++) { //zapisujemy 100 liczb z przedzialu wraz z liczba ich wystepowań

       numbersMap[rand() % 1000]++;

   }

   int maxOccur = std::max_element(numbersMap.begin(), numbersMap.end(), [](auto a, auto b) {

       return a.second < b.second;

   })->second; //liczymy ile razy wystąpiła liczba najwiecej razy

   std::cout << "Te liczby wystapily najwieksza liczbe razy, czyli " << maxOccur << std::endl;

   for (const auto &[number, occur]: numbersMap) { //jesli liczba wystapien liczby == max to wyswietl ja

       if (occur == maxOccur) {

           std::cout << number << std::endl;

       }

   }

   

   return 0;

}

Wyjaśnienie:

O to chodziło?