Odpowiedź :
Odpowiedź:
#include <iostream>
#include <algorithm>
int main() {
int numbersToEnter;
const int numbersToPrint = 3;
std::cout << "Podaj ile liczb bedziesz wprowadzac\n";
std::cin >> numbersToEnter;
int *tab = new int[numbersToEnter];
for(int i = 0; i < numbersToEnter; i++){
std::cout << "Podaj " << i + 1 << " liczbe" << std::endl;
std::cin >> tab[i];
}
std::sort(tab, tab + numbersToEnter, std::greater<int>());
for(int i = 0; i < numbersToPrint; i++){
std::cout << tab[i] << std::endl;
}
delete [] tab;
return 0;
}
Wyjaśnienie:
Skorzystałem z tablic dynamicznych aby móc stworzyć tablicę o wybranej liczbie elementów i potem std::sort aby posortować wprowadzone liczby malejąco. Następnie wyświetliłem pierwsze 3 liczby z tej tablicy
Odpowiedź
Kod źródłowy w pierwszym załączniku, w drugim podałam jak wyglądają przykładowe wyniki uruchomienia.
Przykładowe wyniki uzyskałam na platformie replit.
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 i funkcji, 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 oraz funkcji.)
Wyjaśnienie
set (pol. zbiór) jest też tak jak vector strukturą dynamiczną. Jest on zawsze (automatycznie) uporządkowany, więc jeśli chcemy największe to musimy od końca.
Dodatkowo set nie trzyma duplikatów, wiec jeśli po wprowadzeniu
7 8 9 9 9
odpowiedzią, że trzy największe to 9 8 7, wtedy set jest strukturą (kontenerem) w prosty sposób udzielającym takiej właśnie odpowiedzi.

