Сергей
Гений
(56253)
1 год назад
void insert_after_null(int arr[], int& size, int k)
{
int index_null = 0; //индекс предполагаемого нуля
if (size + 2 > 100) { cout << "Вставка не возможна\n"; return; } //если размер с учетом 2-х добавленных больше 100 выход
for (; index_null < size && arr[index_null]; index_null++); //цикл ищет нуль в массиве
if (index_null == size) { cout << "Нет нулей в массиве\n"; return; } //если индекс стал равен размеру массива, значит нуля не было
for (int i = size - 1; i != index_null; i--) arr[i + 2] = arr[i]; //перемещаем правую часть массива вправо на 2 элемента
arr[index_null + 1] = arr[index_null + 2] = k; //в освобожденное место записываем два раза наш элемент
size += 2; //увеличиваем размер массива на 2 (из за ссылки size изменится так же и в main)
}