Advertisement
MeehoweCK

Untitled

Mar 15th, 2021
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. // zadanie 9.
  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 dodaj_element(int*& tab, unsigned& n, int nowa_wartosc)
  17. {
  18.     // 1. utworzenie nowej tablicy tymczasowej, o wielkości n
  19.     int* temp = new int[n];
  20.     // 2. skopiowanie elementów tablicy do tymczasowej
  21.     for(unsigned i = 0; i < n; ++i)
  22.         temp[i] = tab[i];
  23.     // 3. usunięcie dotychczasowej tablicy
  24.     delete[] tab;
  25.     // 4. zwiększenie rozmiaru tablicy o 1
  26.     ++n;
  27.     // 5. utworzenie nowej tablicy, o rozmiarze większym o 1
  28.     tab = new int[n];
  29.     // 6. wstawienie na zerowej pozycji nowej wartości
  30.     tab[0] = nowa_wartosc;
  31.     // 7. skopiowanie do nowej tablicy zawartości tymczasowej tablicy
  32.     for(unsigned i = 1; i < n; ++i)
  33.         tab[i] = temp[i - 1];
  34.     // 8. zwolnienie pamięci z tablicy tymczasowej
  35.     delete[] temp;
  36. }
  37.  
  38. void wypisz(const int* tab, const unsigned n)
  39. {
  40.     for(unsigned i = 0; i < n; ++i)
  41.         cout << tab[i] << '\t';
  42.     cout << endl;
  43. }
  44.  
  45. int main()
  46. {
  47.     srand(time(nullptr));
  48.     unsigned n;
  49.     cout << "Podaj wielkosc tablicy: ";
  50.     cin >> n;
  51.  
  52.     int* tablica = utworz(n);
  53.     wypisz(tablica, n);
  54.  
  55.     cout << "Wpisz wartosc, jaka chcesz dodac na poczatek tablicy: ";
  56.     int wartosc;
  57.     cin >> wartosc;
  58.  
  59.     dodaj_element(tablica, n, wartosc);
  60.  
  61.     wypisz(tablica, n);
  62.     delete[] tablica;
  63.  
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement