Advertisement
MeehoweCK

Untitled

Jul 19th, 2018
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. void wypisz(int* tablica)
  8. {
  9.     for(int i = 0; i < 6; ++i)
  10.     {
  11.         cout << tablica[i];
  12.         if(i == 5)
  13.             cout << endl;
  14.         else
  15.             cout << ", ";
  16.     }
  17. }
  18.  
  19. bool czy_jest(int wylosowana, int* tablica, int ile)
  20. {
  21.     for(int i = 0; i < ile; ++i)
  22.     {
  23.         if(tablica[i] == wylosowana)
  24.         {
  25.             //cout << "!";          // komunikat o powtórzonej liczbie
  26.             return true;
  27.         }
  28.     }
  29.     return false;                   // wylosowanej liczby nie ma do tej pory w tablicy
  30. }
  31.  
  32. void wypelnienie(int* tablica)
  33. {
  34.     srand(static_cast<unsigned>(time(nullptr)));
  35.     int ile =0;
  36.     int liczba;
  37.     while(ile<6)
  38.     {
  39.         liczba = rand() % 49 + 1;
  40.         if(czy_jest(liczba,tablica,ile))
  41.             continue;
  42.         tablica[ile] = liczba;
  43.         ++ile;
  44.     }
  45. }
  46.  
  47. // sortowanie z flagą
  48. void flag_sort(int* tablica)
  49. {
  50.     bool flaga;
  51.     for(int j = 0; j < 6; ++j)
  52.     {
  53.         flaga = false;                          // ustawienie flagi jako opuszczoną
  54.         for(int i = 0; i < 5; ++i)
  55.         {
  56.             if(tablica[i] > tablica[i+1])
  57.             {
  58.                 swap(tablica[i], tablica[i+1]);
  59.                 flaga = true;                   // doszło do przemieszczenia, flaga jest podniesiona, aby zasygnalizować, że prawdopodobnie nadal jest coś do zrobienia
  60.             }
  61.             //wypisz(tablica);
  62.         }
  63.         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)
  64.             break;
  65.     }
  66. }
  67.  
  68. int main()
  69. {
  70.     int wylosowane[6] = {0};        // wypełnienie całej tablicy zerami
  71.     wypelnienie(wylosowane);
  72.     //cout << endl;
  73.     flag_sort(wylosowane);
  74.     wypisz(wylosowane);
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement