Имеется массив размера N. Необходимо продублировать в нем элементы с четными номерами. Пример:
a={1,2,3,4,5,6}
Результат: a={1,1,2,3,3,4,5,5,6}
Для начала я создал еще один массив , куда сохранил элементы первого массива с четными номерами. Далее я создал третий массив, куда попытался для четных номеров справа дописать элементы из второго масссива, т.е я объединял данные из 1 и 2 массивов. Но каждый раз программа выдавала неверные значения. Часть кода представлена ниже. Как решить эту задачу?
#include <stdio.h>
#include <malloc.h>
#include <windows.h>
#include <locale.h>
int main()
{
ULONGLONG n = 0;
setlocale(LC_ALL, "");
printf_s("Введите количество элементов массива и сами элементы: ");
if (!scanf_s("%llu", &n))
{
printf_s("Введено некорректное значение");
return 0;
}
ULONGLONG size = n + (double) n / 2 + 0.5 ;
double* a=new double[n];
double* a2 = new double[size-n];
double* a3 = new double[size];
for (ULONGLONG i = 0; i < n; i++)
{
if (!scanf_s("%lf", &a[i]))
{
printf_s("Введено некорректное значение");
return 0;
}
}
for (ULONGLONG i = 0; i < size-n; i++)
{
a2[i] = a[2*i];
}
return 0;
}