C/C++

Помогите, пожалуйста, решить задачу C++.

Написать программу на языке С++ для создания динамического массива A[N] , заполнить массив с помощью генератора случайных чисел (получение случайного числа в интервале [a,b] оформить как функцию (а=-30,b =30)). Полученный массив перезаписать удалив из него все нечетные числа. Перезапись оформить как функцию.
 #include   
#include
#include
#include
using namespace std;
int* random_fill(const size_t n) {
auto box = new(nothrow) int[n];
if (box != nullptr) {
const auto a = -30;
const auto b = 30;
uniform_int_distribution uid(a, b);
mt19937 gen{ random_device()() };
for (size_t i = 0; i < n; ++i) {
box[i] = uid(gen);
}
}
return box;
}
void show(int* box, const size_t n) {
for (size_t i = 0; i < n; ++i) {
cout
Александр Перетягин
Александр Перетягин
71 011
Лучший ответ
Возможно ему надо проще...но тут зависит от того, как изучают.
 #include   
#include
#include

using namespace std;

// генерация случайного целого числа [a;b]
int GetRnd(int a = -30, int b = 30)
{
unsigned int r = rand();
if ( (b - a) 0)
A[i - k] = A[i]; // четное записываем на место нечетного
}

N = N - k; // изменим размер данных в массиве
}


int main()
{
srand( time(NULL) ); // инициализация генератора rand

int N;
cin >> N; // вводим N
// создаем массив A[N]
int* A = new int[N];

// заполняем массив
for (int i = 0; i < N; ++i) A[i] = GetRnd();

// вывод массива на экран
for (int i = 0; i < N; ++i) cout
Миша Тихонов
Миша Тихонов
58 157
Динамический массив, по-моему, тут лучше сделать в виде вектора, иначе удаление из него нечётных элементов будет довольно хлопотным делом, а так как внизу тело функции, удаляющей из динамического массива все входящие в него нечётные элементы, - это всего-то пара строк:
 #include  
#include
#include
#include
#include

using namespace std;

vector A;

int r(int a, int b)
{
return a + rand() % (b - a + 1);
}

void even_array()
{
for (int i = A.size() - 1; i >= 0; i--)
if (A[i] & 1) A.erase(A.begin() + i);
}

void print_array()
{
int i, j = 0;
cout