Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- void wypisz(int* tablica)
- {
- for(int i = 0; i < 6; ++i)
- {
- cout << tablica[i];
- if(i == 5)
- cout << endl;
- else
- cout << ", ";
- }
- }
- bool czy_jest(int wylosowana, int* tablica, int ile)
- {
- for(int i = 0; i < ile; ++i)
- {
- if(tablica[i] == wylosowana)
- {
- //cout << "!"; // komunikat o powtórzonej liczbie
- return true;
- }
- }
- return false; // wylosowanej liczby nie ma do tej pory w tablicy
- }
- void wypelnienie(int* tablica)
- {
- srand(static_cast<unsigned>(time(nullptr)));
- int ile =0;
- int liczba;
- while(ile<6)
- {
- liczba = rand() % 49 + 1;
- if(czy_jest(liczba,tablica,ile))
- continue;
- tablica[ile] = liczba;
- ++ile;
- }
- }
- // sortowanie z flagą
- void flag_sort(int* tablica)
- {
- bool flaga;
- for(int j = 0; j < 6; ++j)
- {
- flaga = false; // ustawienie flagi jako opuszczoną
- for(int i = 0; i < 5; ++i)
- {
- if(tablica[i] > tablica[i+1])
- {
- swap(tablica[i], tablica[i+1]);
- flaga = true; // doszło do przemieszczenia, flaga jest podniesiona, aby zasygnalizować, że prawdopodobnie nadal jest coś do zrobienia
- }
- //wypisz(tablica);
- }
- if(!flaga) // jeżeli po wykonaniu pętli wewnętrznej flaga wciąż jest opuszczona, następuje wyjście z pętli głównej (nie ma nic do zrobienia)
- break;
- }
- }
- int main()
- {
- int wylosowane[6] = {0}; // wypełnienie całej tablicy zerami
- wypelnienie(wylosowane);
- //cout << endl;
- flag_sort(wylosowane);
- wypisz(wylosowane);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement