Advertisement
MeehoweCK

Untitled

Nov 23rd, 2018
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. void wypisz(int*, int);
  8.  
  9. int* zmien_rozmiar(int* tablica, int n, int k)
  10. {
  11.     if(n == k)
  12.         return tablica;
  13.  
  14.     int* temp;      // tablica tymczasowa
  15.     // zwiekszanie tablicy
  16.     if(k > n)
  17.     {
  18.         temp = new int[n];
  19.         // kopiowanie danych do tymczasowej tablicy
  20.         for(int i = 0; i < n; ++i)
  21.             temp[i] = tablica[i];
  22.         // kasowanie dotychczasowej tablicy
  23.         delete[] tablica;
  24.         // tworzenie nowej tablicy o rozmiarze k
  25.         tablica = new int[k];
  26.         for(int i = 0; i < k; ++i)
  27.             if(i < n)
  28.                 tablica[i] = temp[i];
  29.             else
  30.                 tablica[i] = 0;
  31.         delete[] temp;
  32.         return tablica;
  33.     }
  34.  
  35.     // zmniejszenie tablicy
  36.     else
  37.     {
  38.         temp = new int[k];
  39.         // kopiowanie danych do tablicy tymczasowej
  40.         for(int i = 0; i < k; ++i)
  41.             temp[i] = tablica[i];
  42.         // kasowanie dotychczasowej tablicy
  43.         delete[] tablica;
  44.         // tworzenie nowej
  45.         tablica = new int[k];
  46.         // kopiowanie
  47.         for(int i = 0; i < k; ++i)
  48.             tablica[i] = temp[i];
  49.         // kasowanie tymczasowej
  50.         delete[] temp;
  51.         return tablica;
  52.     }
  53. }
  54.  
  55. void wypelnij(int* tablica, int n)
  56. {
  57.  
  58.     // wypelnienie tablicy losowymi liczbami
  59.     srand(static_cast<unsigned>(time(nullptr)));
  60.  
  61.     for(int i = 0; i < n; ++i)
  62.         tablica[i] = rand() % 100 + 1;
  63. }
  64.  
  65. void wypisz(int* tablica, int n)
  66. {
  67.     for(int i = 0; i < n; ++i)
  68.         cout << tablica[i] << " ";
  69.     cout << endl;
  70. }
  71.  
  72. int main()
  73. {
  74.     int n;
  75.     cout << "Podaj rozmiar tablicy: ";
  76.     cin >> n;
  77.  
  78.     int* tablica = new int[n];
  79.  
  80.     wypelnij(tablica,n);
  81.     wypisz(tablica,n);
  82.  
  83.     int k = n + 5;
  84.     tablica = zmien_rozmiar(tablica, n, k);
  85.     wypisz(tablica, k);
  86.  
  87.  
  88.     delete[] tablica;
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement