Advertisement
MeehoweCK

Untitled

Jul 9th, 2021
881
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. const short N = 6;
  8.  
  9. void sortuj(short* tablica)
  10. {
  11.     for(short i = 0; i < N - 1; ++i)
  12.         for(short j = 0; j < N - 1 - i; ++j)
  13.         {
  14.             if(tablica[j] > tablica[j + 1])
  15.                 swap(tablica[j], tablica[j + 1]);
  16.         }
  17. }
  18.  
  19. bool czy_powtarzaja(short* tablica, short liczba, short n)        // sprawdza, czy dana liczba jest na n pierwszych miejscach w tablicy
  20. {
  21.     for(short i = 0; i < n; ++i)
  22.         if(tablica[i] == liczba)
  23.             return true;
  24.     return false;
  25. }
  26.  
  27. void wpisuj(short* tablica2)
  28. {
  29.     short wpisywana;
  30.     for(int i = 0; i < N; ++i)
  31.     {
  32.         cout << "Podaj " << i + 1 << ". liczbe: ";
  33.         cin >> wpisywana;
  34.         while(wpisywana < 1 || wpisywana > 49 || czy_powtarzaja(tablica2, wpisywana, i) || cin.fail())
  35.         {
  36.             if(cin.fail())
  37.             {
  38.                 cout << "Wpisales niepoprawna wartosc. Wpisz jeszcze raz: ";
  39.                 cin.clear();
  40.                 cin.ignore(99999, '\n');
  41.                 cin >> wpisywana;
  42.                 continue;       // automatyczne przejście do kolejnego kroku pętli
  43.             }
  44.             if(wpisywana < 1 || wpisywana > 49)
  45.                 cout << "Wpisales liczbe spoza zakresu. Wpisz jeszcze raz (w przedziale od 1 do 49): ";
  46.             else
  47.                 cout << "Ta liczba zostala juz wpisana wczesniej. Wpisz jeszcze raz: ";
  48.             cin >> wpisywana;
  49.         }
  50.         tablica2[i] = wpisywana;
  51.     }
  52. }
  53.  
  54. short czytesame(short* tablica, short* tablica2)
  55. {
  56.     int ile_powtarza = 0;
  57.     for(int i = 0; i < 6; ++i)
  58.     {
  59.         if(czy_powtarzaja(tablica, tablica2[i], N))
  60.             ++ile_powtarza;
  61.     }
  62.     return ile_powtarza;
  63. }
  64.  
  65. void losuj(short* tablica)
  66. {
  67.     srand(time(nullptr));
  68.     short losowana;
  69.     for(short i = 0; i < N; ++i)
  70.     {
  71.         do
  72.         {
  73.             losowana = 1 + rand() % 49;
  74.         }
  75.         while(czy_powtarzaja(tablica, losowana, i));
  76.         tablica[i] = losowana;
  77.     }
  78. }
  79.  
  80. void wypisz(short* tablica)
  81. {
  82.     for(short i = 0; i < N; ++i)
  83.     {
  84.         cout << tablica[i] << '\t';
  85.     }
  86. }
  87.  
  88. int main()
  89. {
  90.     short tablica2[N];
  91.     short tablica[N];
  92.     losuj(tablica);
  93.     sortuj(tablica);
  94.     wpisuj(tablica2);
  95.     sortuj(tablica2);
  96.     cout << "Podales liczby:\t\t\t\t";
  97.     wypisz(tablica2);
  98.     cout << endl << "Wylosowane przez komputer liczby to:\t";
  99.     wypisz(tablica);
  100.     cout << endl << "Wiec powtarza sie " << czytesame(tablica, tablica2) << " liczb.";
  101.  
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement