Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // zadanie 8.
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- int* utworz(const unsigned n)
- {
- int* tablica = new int[n];
- for(unsigned i = 0; i < n; ++i)
- tablica[i] = rand() % 101;
- return tablica;
- }
- void kasuj_element(int*& tab, unsigned& n, const unsigned pozycja)
- {
- if(pozycja >= n || pozycja < 0)
- return;
- // 1. utworzenie tablicy tymczasowej, o 1 mniejszej od podanej
- int* nowa = new int[n - 1];
- // 2. skopiowanie do nowej tablicy wartości z podanej tablicy (bez kasowanej pozycji)
- unsigned j = 0;
- for(unsigned i = 0; i < n; ++i)
- {
- if(i == pozycja)
- continue;
- nowa[j] = tab[i];
- ++j;
- }
- // 3. zwolnienie pamięci z podanej tablicy
- delete[] tab;
- // 4. zmniejszenie wielkości tablicy
- --n;
- // 5. utworzenie nowej tablicy na miejsce podanej do funkcji
- tab = new int[n];
- // 6. skopiowanie wartości z nowej tablicy do podanej
- for(unsigned i = 0; i < n; ++i)
- tab[i] = nowa[i];
- // 7. zwolnienie pamięci z tablicy tymczasowej
- delete[] nowa;
- }
- void wypisz(const int* tab, const unsigned n)
- {
- for(unsigned i = 0; i < n; ++i)
- cout << tab[i] << '\t';
- cout << endl;
- }
- int main()
- {
- srand(time(nullptr));
- unsigned n;
- cout << "Podaj wielkosc tablicy: ";
- cin >> n;
- int* tablica = utworz(n);
- wypisz(tablica, n);
- cout << "Wskaz nr elementu, ktory chcesz usunac: ";
- unsigned poz;
- cin >> poz;
- kasuj_element(tablica, n, poz);
- wypisz(tablica, n);
- delete[] tablica;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement