Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- void delFirstMetod(int x[], int& n, int key)
- {
- int i = 0;
- int comparisons = 0, movements = 0;
- while (i <= n)
- {
- if (x[i] == key)
- {
- ++comparisons;
- //удаление
- for (int j = i; j <= n - 1; ++j)
- {
- x[j] = x[j + 1];
- ++movements;
- }
- n -= 1;
- }
- else
- {
- i += 1;
- }
- }
- cout << "Количество сравнений: " << comparisons << endl;
- cout << "Количество перемещений: " << movements << endl;
- }
- void delOtherMetod(int x[], int& n, int key)
- {
- int j = 0;
- int comparisons = 0, movements = 0;
- for (int i = 1; i < n; ++i)
- {
- x[j] = x[i];
- ++movements;
- if (x[i] != key)
- {
- ++j;
- ++comparisons;
- }
- }
- n = j;
- cout << "Количество сравнений: " << comparisons << endl;
- cout << "Количество перемещений: " << movements << endl;
- }
- void Randomazer(int x[], int n)
- {
- for (int i = 0; i < n; i++)
- {
- x[i] = rand() % 10;
- }
- }
- void Print(int x[], int n) {
- for (int i = 0; i < n; ++i)
- {
- cout << x[i] << " ";
- }
- cout << endl;
- }
- int main()
- {
- setlocale(0, "");
- int n, key;
- cout << "Размер массива: 10 или 100?" << endl;
- cin >> n;
- auto* x = new int[n];
- //Randomazer(x, n);
- for (int i = 0; i < n; i++)
- {
- int el;
- cout << "Введите элемент #" << i + 1 << ": "; cin >> el;
- x[i] = el;
- }
- cout << "Ваш массив" << endl;
- Print(x, n);
- cout << "Длина массива = " << n << endl;
- cout << "Введите элемент, который хотите удалить: "; cin >> key;
- delOtherMetod(x, n, key);
- cout << "Очищенный массив" << endl;
- Print(x, n);
- cout << "Длина массива = " << n << endl;
- delete[]x;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement