Kod źródłowy w pierwszym załączniku, w drugim podałam jak wyglądają przykładowe wyniki uruchomienia.
Pominęłam odpowiedź na pytanie co zrobić jeśli więcej niż jedna liczba występuje najczęściej...
Spojrzałam krytycznie na swój kod i zmienną najczęściej powinnam była nazwać albo ile_razy, albo tyle_razy. Jestem przekonana, że program byłby wtedy dużo czytelniejszy.
Wyjaśnienie
Przykładowe wyniki uzyskałam na platformie Replit.
Aby zakończyć wpisywanie liczb ciągu używałam CTRL-D. Niestety ta metoda nie działa na platformach Programiz oraz cpp.sh
Jeżeli Twoja platforma (program, środowisko) nie obsługuje polskich liter w komunikatach, to zamień polskie litery w komunikatach na odpowiadające im znaki ASCII.
Jeżeli Twoja platforma nie obsługuje polskich liter w nazwach zmiennych, to zamień polskie litery na odpowiadające im znaki ASCII. (Na przykład zarówno Code::Blocks, Dev-C++ jak i OnlineGDB jeszcze nie obsługują polskich liter w nazwach zmiennych.)
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
// Tworzymy słownik, w którym kluczem będzie liczba, a wartością - liczba jej wystąpień w ciągu
unordered_map<int, int> count;
// Wczytujemy liczby z ciągu
int n;
while (cin >> n) {
// Jeśli liczba jest już w słowniku, zwiększamy jej liczbę wystąpień o 1
if (count.count(n) > 0) {
count[n]++;
} else {
// W przeciwnym razie dodajemy ją do słownika i ustawiamy jej liczbę wystąpień na 1
count[n] = 1;
}
}
// Zmienna, w której będziemy przechowywać liczbę, która wystąpiła w ciągu najwięcej razy
int mostFrequent = 0;
// Zmienna, w której będziemy przechowywać największą liczbę wystąpień
int maxCount = 0;
// Przechodzimy przez wszystkie liczby w słowniku
for (auto &pair : count) {
// Jeśli liczba wystąpień danej liczby jest większa niż dotychczas największa liczba wystąpień
if (pair.second > maxCount) {
// Zapisujemy nową największą liczbę wystąpień
maxCount = pair.second;
// Zapisujemy liczbę, która wystąpiła najwięcej razy
mostFrequent = pair.first;
}
}
// Wypisujemy liczbę, która wystąpiła najwięcej razy
cout << "Liczba, która wystąpiła w ciągu najwięcej razy: " << mostFrequent << endl;
return 0;
}
Odpowiedź
Kod źródłowy w pierwszym załączniku, w drugim podałam jak wyglądają przykładowe wyniki uruchomienia.
Pominęłam odpowiedź na pytanie co zrobić jeśli więcej niż jedna liczba występuje najczęściej...
Spojrzałam krytycznie na swój kod i zmienną najczęściej powinnam była nazwać albo ile_razy, albo tyle_razy. Jestem przekonana, że program byłby wtedy dużo czytelniejszy.
Wyjaśnienie
Przykładowe wyniki uzyskałam na platformie Replit.
Aby zakończyć wpisywanie liczb ciągu używałam CTRL-D. Niestety ta metoda nie działa na platformach Programiz oraz cpp.sh
Jeżeli Twoja platforma (program, środowisko) nie obsługuje polskich liter w komunikatach, to zamień polskie litery w komunikatach na odpowiadające im znaki ASCII.
Jeżeli Twoja platforma nie obsługuje polskich liter w nazwach zmiennych, to zamień polskie litery na odpowiadające im znaki ASCII. (Na przykład zarówno Code::Blocks, Dev-C++ jak i OnlineGDB jeszcze nie obsługują polskich liter w nazwach zmiennych.)