👤

Mega potrzebuję pomocy do dzisiaj (zadanie z c++) napisz program, który wylosuje z przedziału od 100 do 200 10 liczb niepowtarzalnych i wyświetli najmniejszą i największą liczbę z wylosowanych.

Odpowiedź :

Odpowiedź:

#include <iostream>

#include <cstdlib>

#include <set>

#include <ctime>

int main() {

   srand(time(nullptr));

   std::set<int> numbers;

   const int size = 10;

   while(numbers.size() != size){

       int number = rand() % 101 + 100;

       numbers.insert(number);

   }

   std::cout << "Najwieksza: " << *numbers.rbegin() << std::endl;

   std::cout << "Najmniejsza: " << *numbers.begin() << std::endl;

   return 0;

}

Wyjaśnienie:

Myślę, że najprościej rozwiązać to za pomocą seta. Set zbiera tylko unikalne elementy i je sortuje. Jeśli chcemy mieć 10 elementów unikalnych, to dodajemy do seta aż jego wielkość nie będzie taka jak wymagana liczba unikalnych elementów. A skoro set nam je automatycznie sortuje, to za pomocą dereferencji iteratora możemy wyświetlić jego pierwszy czyli najmniejszy element oraz ostatni czyli największy

On Studier: Inne Pytanie