C/C++

Помогите составить программу

Используя функции сформировать с помощью ДСЧ одномерный массив и вывести его на печать.
Удалить из массива все четные элементы.

Помогите пожалуйста!
#include <iostream>

using namespace std;

void fill(int* arr, size_t size) //заполнение массива
{
srand(time(nullptr)); //настройка ДСЧ
for (size_t i = 0; i < size; i++)
arr[i] = rand() % 21; //заполнение от 0 д0 20
}

void print(int* arr, size_t size) //печать элементов
{
for (size_t i = 0; i < size; i++) cout << arr[i] << " ";
cout << endl;
}

void del_n(int* arr, size_t& size) //удаление четных элементов
{
for (size_t i = 0; i < size/2; i++)
arr[i] = arr[i * 2 + 1]; //перемещаем нечетные элементы в начало массива
size /= 2; //коррекция размера по ссылке
}

int main()
{
int arr[100]; //выделение под масив статической области в 100 ячеек
size_t size = 21; //размер массива (здесь и в функциях size_t тоже самое что unsigned long long int)
fill(arr, size);
print(arr, size);
del_n(arr, size);
print(arr, size);
}
ВК
Виктор Ким
51 411
Лучший ответ
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define limit 100

void shift(int *array, int size,int pos)
{
//сдвигаем элементы массива
//в позиции удаляемых
//чётных элементов:
for(int i = pos; i < size-1; i++)
array[i] = array[i+1];
array[size-1]=-1;
}

int main()
{
int size, //кол-во эл-в массива
count=0, //кол-во чётных эл-в
*A, //динамич. массив
ind; //счётчик индекса эл-та

printf("Enter size of array: ");
scanf("%d", &size);

//выделяем память в ОЗУ
//для массива:
A=(int*)malloc(size*sizeof(int));

//если память не выделена,
//то завершаем работу
//программы с ошибкой 1:
if(!A)
{
printf("\nError. Array not created.");
exit(1);
}

//заполняем массив
//случайными значениями:
srand(time(NULL));
printf("\nArray A[%d]:\n", size);
for(int i = 0; i < size; i++)
{
A[i] = 1+(rand()%limit);
printf("%d ", A[i]);
}

ind=0;
while(A[ind]>-1)
{//while
if(A[ind]==-1) break;
while(A[ind]%2==0)
{
shift(A,size,ind);
count++;
}
ind++;
}//while

//уменьшаем размер массива
//в памяти на количество
//удаляемых чётных элементов:
size-=count;
A=(int*)realloc(A,size*sizeof(int));

printf("\n\nResult array A[%d]:\n", size);
for(int i = 0; i < size; i++)
printf("%d ", A[i]);

free(A);
system("pause"); //for Windows
return 0;
}