Написать фрагмент программы, удаляющий i-й элемент из массива целых чисел размера N, i <= N. Фрагмент оформить в виде функции, массив передать в функцию через параметры.
Результат работы программы показан ниже.
CppStudio.com
Укажите количество элементов массива: 15 83 86 77 15 93 35 86 92 49 21 62 27 90 59 63 Укажите номер элемента массива, который необходимо удалить: 3 83 86 15 93 35 86 92 49 21 62 27 90 59 63
#include<iostream>
using namespace std;
#include <cstdlib>
bool iDel(int *array, int &lenAr, int nom);
int main()
{
int length_array;
cout << "Укажите количество элементов массива: ";
cin >> length_array;
int *arrayPtr = new int [length_array]; // одномерный динамический массив
// заполняем одномерный массив случайными числами
for (int counter = 0; counter < length_array; counter++)
{
arrayPtr[counter] = rand() % 100; // генерируем случайные числа
cout << arrayPtr[counter] << " "; // вывод сгенерированного числа
}
cout << endl;
int n;
cout << "Укажите номер элемента массива, который необходимо удалить: ";
cin >> n;
iDel(arrayPtr, length_array, n);
for (int counter = 0; counter < length_array; counter++)
{
cout << arrayPtr[counter] << " "; // вывод сгенерированного числа
}
cout << endl;
delete [] arrayPtr;
return 0;
}
bool iDel(int *array, int &lenAr, int nom)
{
if ( nom > lenAr || nom < 1)
{
cout << "Ошибка удаления" << endl;
return false;
}
for(int ix = nom - 1; ix < lenAr - 1; ix++)
{
array[ix] = array[ix + 1];
}
lenAr--;
return true;
}
Комментарии
olewasl
{{{{{mpavelFax
Работа на дому официальное трудоустройство.
Vladimir Belikov
#include <iostream> #include <stdlib.h> using namespace std; int *delElement(int *arr, short &len, short num) { if (num <= len && num >= 1) { --num; int *tmp = new int [len - 1]; for (unsigned short i = 0; i < num; ++i) tmp[i] = arr[i]; for (unsigned short i = num; i < len - 1; ++i) tmp[i] = arr[i+1]; delete [] arr; arr = tmp; --len; return arr; } else { cout << "Error\n"; return arr; } } int main() { srand(time(NULL)); short arrSize = 10; int *arr = new int [arrSize]; for (unsigned short i = 0; i < arrSize; ++i) { arr[i] = rand()%100; cout << arr[i] << ' '; } cout << '\n'; arr = delElement (arr, arrSize, 10); for (unsigned short i = 0; i < arrSize; ++i) cout << arr[i] << ' '; delete [] arr; return 0; }