Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <Windows.h>
- using namespace std;
- //поиск и удаление в массиве arr размером sizeArr элементов массив кратных k
- void searchAndDelete(int*& arr, int& sizeArr, int k) {
- int newArrSize = 0; //размер нового массива
- for (int i = 0; i < sizeArr; i++) {
- if (arr[i] % k != 0) newArrSize++; //если элемент не картен k то, его нужно будет добавить в новый массив, а значит размер нового массива станет на 1 больше
- }
- int* newArr = new int[newArrSize]; //выделяем память под новый массив
- int j = 0; //счетчик элементов для нового массива
- for (int i = 0; i < sizeArr; i++) {
- if (arr[i] % k != 0) newArr[j++] = arr[i]; //если элемент не кратен k, добавляем его в новый массив, увеличиваем счетчик j на 1
- }
- arr = newArr; //записываем новый массив в старый
- sizeArr = newArrSize; //записываем размер нового массива в старый
- }
- int main() {
- //установка кириллицы в консоле
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- //ввод размер массива
- int sizeArr;
- while (true) {
- cout << "Введите размер массива: " << endl;
- cin >> sizeArr;
- if (sizeArr <= 0) cout << "Раземер массива должен быть больше нуля" << endl;
- else break;
- }
- //вввод параметров a,b, k
- int a, b, k;
- while (true) {
- cout << "Введите параметры a,b,k" << endl;
- cin >> a >> b >> k;
- if (a < 0 || b < 0 || k <0 || a > b) cout << "Некоррекные данные" << endl;
- else break;
- }
- int* arr = new int[sizeArr]; //выделение памяти под массив
- srand(time(0)); //сброс рандома
- for (int i = 0; i < sizeArr; i++) {
- arr[i] = rand() % (b - a + 1) + a; //генерация случайного значения в диапазоне [a, b]
- }
- //вывод массива до обработки
- cout << "массив до обработки: ";
- for (int i = 0; i < sizeArr; i++) cout << arr[i] << ' ';
- cout << endl;
- searchAndDelete(arr, sizeArr, k); //вызов функции поиска и удаления
- //вывод обработанного массива
- cout << "массив после обработки: ";
- for (int i = 0; i < sizeArr; i++) cout << arr[i] << ' ';
- cout << endl;
- //задержка консоли
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement