Функция, удаляющая элемент одномерного массива

Уровень сложности:

Написать фрагмент программы, удаляющий i-й элемент из массива целых чисел размера Ni <= 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;
}

Автор: Marienko L.
Дата: 13.01.2013
Поделиться:

Комментарии

  1. olewasl

    //26.04.17 22.45 Функция , удаляющая элемент одномерного массива
    //olewasl
    #include <iostream>
    #include <ctime>
    
    
    using namespace std;
    
    
    int main()
    {
        int n=0; //количество элементов одномерного массива
        int k=0; //номер элемента,который нужно удалить
        cout<<"Enter number of elements of massive : ";
        cin>>n;
        int *mass=new int[n];//одномерный динамический массив
    //Заполним элементы массива случайными числами
        srand(time(NULL));
         for(int i=0;i<n;i++)
         {
            *(mass+i)=(2+rand()%10);
         }
         //Выведем полученный массив
         cout<<endl;
         for(int i=0;i<n;i++)
         {
         cout<<*(mass+i)<<" ";
         }
         cout<<endl;
         cout<<endl;
         cout<<"Enter the number of item that nedeed to delete: ";
         cin>>k;
         //Удалим заданный элемент массива
         for(int i=0;i<n-1;i++)
             if(i>=k-1)
             {
                 *(mass+i)=*(mass+(i+1));
            //  mass[i]=mass[i+1];
             }
             else;
         //Выведем массив без удалённого элемента
         cout<<endl;
         for(int i=0;i<n-1;i++)
         {
         cout<<*(mass+i)<<" ";
         }
         delete [] mass;
        return 0;
    };
  2. mpavelFax

    Работа на дому официальное трудоустройство.

  3. 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;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.