Advertisement
MeehoweCK

Untitled

Oct 25th, 2022
703
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.68 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <ctime>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. const short N = 6;
  8. const short L = 49;
  9.  
  10. bool czy_juz_jest(short* tablica, short liczba, short n)    // n - okreœla ile pierwszych pozycji w tablicy nale¿y sprawdziæ
  11. {
  12.     for(short i = 0; i < n; ++i)
  13.         if(tablica[i] == liczba)
  14.             return true;
  15.     return false;
  16. }
  17.  
  18. void wytypuj(short* tablica)
  19. {
  20.     cout << "Podaj " << N << " roznych liczb z przedzialu od 1 do " << L << ":\n";
  21.     short nowa;
  22.     for(short i = 0; i < N; ++i)
  23.     {
  24.         cin >> nowa;
  25.         if(nowa < 1 || nowa > L)
  26.         {
  27.             cout << "Liczba musi sie miescic w przedziale od 1 do " << L << ". Wpisz jeszcze raz: ";
  28.             --i;
  29.             continue;
  30.         }
  31.         if(czy_juz_jest(tablica, nowa, i))
  32.         {
  33.             cout << "Ta liczba zostala juz wytypowana. Wpisz inna: ";
  34.             --i;
  35.             continue;
  36.         }
  37.         tablica[i] = nowa;
  38.     }
  39. }
  40.  
  41. void wypelnij(short* tablica)
  42. {
  43.     short losowana;
  44.     for(short i = 0; i < N; ++i)
  45.     {
  46.         do
  47.         {
  48.             losowana = 1 + rand() % L;
  49.         } while(czy_juz_jest(tablica, losowana, i));        // i - okreœla ile liczb ju¿ zosta³o wylosowanych (i wypisanych do tablicy)
  50.         tablica[i] = losowana;
  51.     }
  52. }
  53.  
  54. void wypisz(short* tablica)
  55. {
  56.     for(short i = 0; i < N; ++i)
  57.         cout << tablica[i] << '\t';
  58.     cout << endl;
  59. }
  60.  
  61. void sortuj(short* tablica)
  62. {
  63.     bool flaga = false;
  64.     for(short i = 0; i < N - 1; ++i)        // i - określa ile liczb jest na swoim miejscu (posortowanych)
  65.     {
  66.         if(flaga)
  67.             return;
  68.         flaga = true;
  69.         for(short j = 0; j < N - i - 1; ++j)    // j - numer elementu tablicy
  70.             if(tablica[j] > tablica[j + 1])
  71.             {
  72.                 swap(tablica[j], tablica[j + 1]);
  73.                 flaga = false;
  74.             }
  75.     }
  76. }
  77.  
  78. short ile(short* A, short* B)
  79. {
  80.     short wynik = 0;
  81.     for(short i = 0; i < N; ++i)
  82.         if(czy_juz_jest(A, B[i], N))
  83.             ++wynik;
  84.     return wynik;
  85. }
  86.  
  87. int main()
  88. {
  89.     srand(time(nullptr));
  90.     short tablica[N];
  91.     short uzytkownika[N];
  92.     wytypuj(uzytkownika);
  93.     sortuj(uzytkownika);
  94.     wypelnij(tablica);
  95.     sortuj(tablica);
  96.     system("cls");
  97.     cout << "Twoje liczby:\n\t";
  98.     wypisz(uzytkownika);
  99.     cout << "Liczby wylosowane:\n\t";
  100.     wypisz(tablica);
  101.     short n = ile(tablica, uzytkownika);
  102.  
  103.     if(n == 0)
  104.         cout << "\nNie udalo Ci sie poprawnie wytypowac zadnej liczby :(\n";
  105.     else
  106.         cout << "\nUdalo Ci sie poprawnie wytypowac " << n << " liczb.\n";
  107.     if(n > 2)
  108.         cout << "Gratulacje :)\n";
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement