int ar[50] - обьявляем массив
cout > size - вводим size (ошибка - необьявленная переменная, ошибка - для cout не перегружен > )
cout first_even; --i) {
ar[i] = ar[i - 1];
} - тут скорее всего должен быть сдвиг first_even элементов на 1 позицию вправо, но код "обрезан"
ar[first_even+1] = (first_even? ar[first_even-1]+2 : ar[size-1]+2) - если элемент под номером first_even не равен 0, то элементу под номером first_even+1 присвоить значение элемента под номером
first_even-1 увеличенное на 2 (+2)
иначе присвоить ему последний элемент массива увкличенный на 2
последнии 3 строчки печатают в консоль отредактированный массив
Вывод: скорее вчего этот кусок кода производит цикличный сдвиг элементов(не правильно)