👤

Napisz program, który wczytuje liczby naturalne (użytkownik podaje ile), a następnie program znajduje 3 największe liczby z podanych liczb.

Proszę do jutra potrzebuje tego
za bardzo nie ogarniam C++ żeby cokolwiek zacząć ​


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.

Zobacz obrazek 0AB
Zobacz obrazek 0AB