Вывести элементы массива через одного

нужно написать программу, формирующую массив-результат на базе вещественного исходного массива. При этом должно быть три функции, и формирование массива-результата должно быть путем записи элементов исходного массива через одного. Есть рабочий код,помогите,пожалуйста, решить следующие проблемы:

  1. Надо сделать так,чтобы исходный массив был ВЕЩЕСТВЕННЫЙ (подскажите,чему именно нужно сменить тип данных).
  2. Можно ли как-нибудь сделать данный массив динамическим?
  3. Очень смущает сама функция Res, вроде бы и работает , но не уверена,что правильно... Спасибо огромное заранее)
using namespace std;
#include<stdlib.h>
#include<time.h>
void GOmas(int* p, int n, int k)
{
    int i;
    for (i = 0; i < n; i++)
        p[i] = rand() % (2 * k + 1) - k;
    return;
}
void THISMas(const int* p, int n)
{
    int i;
    for (i = 0; i < n; i++)
        std::cout << p[i] << " " << "|";
    cout << endl;
    return;
}
int Rez(const int* p1, int* p2, int n)
{
    int i, j;
    for (i = 0, j = 0; i < n; i++)
        if (!(i % 2))
            p2[j++] = p1[i];
    return j;
}
 
int main()
{
    setlocale(0, "");
    const int SIZE = 10;
    int mas1[SIZE], mas2[SIZE];
    int Z;
    srand((unsigned)time(NULL));
    GOmas(mas1, SIZE, 10);
    cout << "Исходный массив: " << endl;
    THISMas(mas1, SIZE);
    Z = Rez(mas1, mas2, SIZE);
    cout << "Запись элементов исходного массива через одного: " << endl;
    THISMas(mas2, Z);
    system("pause");
    return 0;
}``

Ответы (0 шт):