MeehoweCK

Untitled

Mar 20th, 2021
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.85 KB | None | 0 0
  1. // totolotek - dla wielu gier
  2.  
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. bool czy_juz_jest(short* tablica, short n, short liczba)
  10. {
  11.     for(short i = 0; i < n; ++i)
  12.         if(tablica[i] == liczba)
  13.             return true;
  14.     return false;
  15. }
  16.  
  17. void wylosuj(short* tablica)
  18. {
  19.     srand(time(nullptr));
  20.     short losowana;
  21.     for(unsigned i = 0; i < 6; ++i)
  22.     {
  23.         do
  24.         {
  25.             losowana = 1 + rand() % 49;
  26.         }
  27.         while(czy_juz_jest(tablica, i, losowana));
  28.         tablica[i] = losowana;
  29.     }
  30. }
  31.  
  32. void wypisz(short* tablica)
  33. {
  34.     for(unsigned i = 0; i < 6; ++i)
  35.         cout << tablica[i] << '\t';
  36.     cout << endl;
  37. }
  38.  
  39. void wypisz(unsigned N, short** tablica)
  40. {
  41.     for(unsigned i = 0; i < N; ++i)
  42.     {
  43.         for(short j = 0; j < 6; ++j)
  44.             cout << tablica[i][j] << '\t';
  45.         cout << endl;
  46.     }
  47. }
  48.  
  49. void zwolnij(unsigned N, short** tablica)
  50. {
  51.     for(unsigned i = 0; i < N; ++i)
  52.         delete[] tablica[i];
  53.     delete[] tablica;
  54. }
  55.  
  56. void pobieranie_liczb(short** &tablica, unsigned N)
  57. {
  58.     tablica = new short*[N];
  59.     short liczba;
  60.     for(unsigned i = 0; i < N; ++i)
  61.     {
  62.         cout << "Podaj liczby do zakladu nr " << i + 1 << ": ";
  63.         tablica[i] = new short[6];
  64.         for(short j = 0; j < 6; ++j)
  65.         {
  66.             cin >> liczba;
  67.             while(liczba < 1 || liczba > 49 || czy_juz_jest(tablica[i], j, liczba))
  68.             {
  69.                 if(liczba < 1 || liczba > 49)
  70.                     cout << "Podales liczbe poza zakresem. Wpisz liczbe z przedzialu od 1 do 49: ";
  71.                 else
  72.                     cout << liczba << " juz znajduje sie na tym kuponie, wpisz inna liczbe: ";
  73.                 cin >> liczba;
  74.             }
  75.             tablica[i][j] = liczba;
  76.         }
  77.     }
  78. }
  79.  
  80. void sprawdzenie(unsigned N, short* losowane, short** typowane, short* wyniki)
  81. {
  82.     short wynik;
  83.     for(unsigned i = 0; i < N; ++i)
  84.     {
  85.         wynik = 0;
  86.         for(short j = 0; j < 6; ++j)
  87.             if(czy_juz_jest(losowane, 6, typowane[i][j]))
  88.                 ++wynik;
  89.         wyniki[i] = wynik;
  90.     }
  91. }
  92.  
  93. void totalizator()
  94. {
  95.     cout << "Podaj liczbe zakladow, ile chcesz grac: ";
  96.     unsigned N;
  97.     cin >> N;
  98.     short** tablica = nullptr;
  99.  
  100.     pobieranie_liczb(tablica, N);
  101.     short tab_losowana[6];
  102.     wylosuj(tab_losowana);
  103.     cout << "Twoj kupon:\n";
  104.     wypisz(N, tablica);
  105.     cout << "Wylosowano liczby:\n";
  106.     wypisz(tab_losowana);
  107.     cout << "W poszczegolnych kuponach uzyskales(as) nastepujaca liczbe trafien:\n";
  108.     short* wyniki = new short[N];
  109.     sprawdzenie(N, tab_losowana, tablica, wyniki);
  110.     for(unsigned i = 0; i < N; ++i)
  111.         cout << wyniki[i] << '\t';
  112.     cout << endl;
  113.     delete wyniki;
  114.     zwolnij(N, tablica);
  115. }
  116.  
  117. int main()
  118. {
  119.     totalizator();
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment