MeehoweCK

Untitled

Aug 5th, 2021
651
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. const short N = 6;
  8.  
  9. bool czy_juz_jest(short* tab, short liczba, short n)        // funkcja zwraca czy podana liczba zawiera siê w tablicy tab na n pierwszych pozycjach
  10. {
  11.     for(short i = 0; i < n; ++i)
  12.         if(liczba == tab[i])    // liczba zawiera siê w tablicy
  13.             return true;
  14.     // przechodzimy do koñca pêtli i nie znajdujemy tej liczby, wiêc zwracamy false:
  15.     return false;
  16. }
  17.  
  18. void wypelnij_tablice(short* tab)
  19. {
  20.     short losowana;
  21.     for(short i = 0; i < N; ++i)
  22.     {
  23.         do
  24.         {
  25.             losowana = 1 + rand() % 49;
  26.         } while(czy_juz_jest(tab, losowana, i));
  27.         tab[i] = losowana;
  28.     }
  29. }
  30.  
  31. void sortuj(short* tab)
  32. {
  33.     for(short i = 0; i < N - 1; ++i)
  34.         for(short j = 0; j < N - i - 1; ++j)
  35.             if(tab[j] > tab[j + 1])
  36.                 swap(tab[j], tab[j + 1]);       // zamiana miejscami
  37. }
  38.  
  39. void wypisz_tablice(short* tab)
  40. {
  41.     for(short i = 0; i < N; ++i)
  42.         cout << tab[i] << '\t';
  43.     cout << endl;
  44. }
  45.  
  46. void podaj_liczby(short* tab)
  47. {
  48.     cout << "Podaj " << N << " liczb naturalny z przedzialu od 1 do 49 tak, aby sie nie powtarzaly: ";
  49.     short liczba;
  50.     for(short i = 0; i < N; ++i)
  51.     {
  52.         cin >> liczba;
  53.         while(liczba < 1 || liczba > 49 || czy_juz_jest(tab, liczba, i))
  54.         {
  55.             if(liczba < 1 || liczba > 49)
  56.                 cout << "Podales liczbe, ktora nie miesci sie w przedziale. Wpisz jeszcze raz: ";
  57.             else
  58.                 cout << "Podales drugi raz te sama liczbe. Wpisz jeszcze raz: ";
  59.             cin >> liczba;
  60.         }
  61.         tab[i] = liczba;
  62.     }
  63. }
  64.  
  65. short wynik(short* tab1, short* tab2)   // funkcja sprawdzająca ile liczb jest wspólnych pomiędzy dwiema tablicami
  66. {
  67.     short licznik = 0;
  68.     for(short i = 0; i < N; ++i)
  69.     {
  70.         if(czy_juz_jest(tab1, tab2[i], N))
  71.             ++licznik;
  72.     }
  73.     return licznik;
  74. }
  75.  
  76. int main()
  77. {
  78.     short tablica_uzytkownika[N];
  79.     podaj_liczby(tablica_uzytkownika);
  80.     sortuj(tablica_uzytkownika);
  81.     cout << "Liczby podane przez uzytkownika:\n";
  82.     wypisz_tablice(tablica_uzytkownika);
  83.  
  84.     short tablica[N];
  85.     srand(time(nullptr));
  86.     wypelnij_tablice(tablica);
  87.     sortuj(tablica);
  88.     cout << "Wylosowane liczby:\n";
  89.     wypisz_tablice(tablica);
  90.  
  91.     cout << "Wytypowales poprawnie " << wynik(tablica, tablica_uzytkownika) << " liczb.\n";
  92.     return 0;
  93. }
RAW Paste Data