#помощь@cppstudioДоброго времени суток. Прошу...
#помощь@cppstudio
Доброго времени суток. Прошу помощи.
Задача была следующей. Написать программу, которая удаляет элемент из массива. Количество элементов и номер удаляемого элемента задает пользователь.
Элемент "удаляется", но в консоли появляется мусор. Как-будто я просто удаляю значение элемента, а из соседних элементов передаю значения на один элемент назад. В итоге в последнем элементе мусор.
#include
#include
using namespace std;
void FillArray(int* const arr, int const size) // функция заполнения массива
{
for (int i = 0; i < size; i++)
{
arr[i] = rand() % 15;
}
}
void ShowArray(int* const arr, int const size) // функция вывода массива
{
for (int i = 0; i < size; i++)
{
cout « arr[i] « "\t";
}
cout « endl;
}
void FUN(int*& arr, int& size) // функция удаления элемента из массива
{
int* new_arrq = new int[size];
cout « "Введите удаляемый элемент" « endl;
int offsize;
cin » offsize;
for (int i = 0; i < offsize; i++)
{
new_arrq[i] = arr[i];
}
for (int i = offsize + 1; i < size; i++)
{
new_arrq[i - 1] = arr[i];
}
delete[]arr;
arr= new_arrq;
}
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int size;
cout « "Введите размер массива" « endl;
cin » size;
int* arr = new int[size];
FillArray(arr, size);
ShowArray(arr, size);
FUN(arr, size);
ShowArray(arr, size);
delete[]arr;
}