Advertisement
MeehoweCK

Untitled

Mar 15th, 2021
582
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. // zadanie 8.
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. int* utworz(const unsigned n)
  9. {
  10.     int* tablica = new int[n];
  11.     for(unsigned i = 0; i < n; ++i)
  12.         tablica[i] = rand() % 101;
  13.     return tablica;
  14. }
  15.  
  16. void kasuj_element(int*& tab, unsigned& n, const unsigned pozycja)
  17. {
  18.     if(pozycja >= n || pozycja < 0)
  19.         return;
  20.     // 1. utworzenie tablicy tymczasowej, o 1 mniejszej od podanej
  21.     int* nowa = new int[n - 1];
  22.     // 2. skopiowanie do nowej tablicy wartości z podanej tablicy (bez kasowanej pozycji)
  23.     unsigned j = 0;
  24.     for(unsigned i = 0; i < n; ++i)
  25.     {
  26.         if(i == pozycja)
  27.             continue;
  28.         nowa[j] = tab[i];
  29.         ++j;
  30.     }
  31.     // 3. zwolnienie pamięci z podanej tablicy
  32.     delete[] tab;
  33.     // 4. zmniejszenie wielkości tablicy
  34.     --n;
  35.     // 5. utworzenie nowej tablicy na miejsce podanej do funkcji
  36.     tab = new int[n];
  37.     // 6. skopiowanie wartości z nowej tablicy do podanej
  38.     for(unsigned i = 0; i < n; ++i)
  39.         tab[i] = nowa[i];
  40.     // 7. zwolnienie pamięci z tablicy tymczasowej
  41.     delete[] nowa;
  42. }
  43.  
  44. void wypisz(const int* tab, const unsigned n)
  45. {
  46.     for(unsigned i = 0; i < n; ++i)
  47.         cout << tab[i] << '\t';
  48.     cout << endl;
  49. }
  50.  
  51. int main()
  52. {
  53.     srand(time(nullptr));
  54.     unsigned n;
  55.     cout << "Podaj wielkosc tablicy: ";
  56.     cin >> n;
  57.  
  58.     int* tablica = utworz(n);
  59.     wypisz(tablica, n);
  60.  
  61.     cout << "Wskaz nr elementu, ktory chcesz usunac: ";
  62.     unsigned poz;
  63.     cin >> poz;
  64.  
  65.     kasuj_element(tablica, n, poz);
  66.  
  67.     wypisz(tablica, n);
  68.     delete[] tablica;
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement