Вставить заданное число в массив целых чисел перед последним четным элементом (если четные элементы есть) - C (СИ)
Формулировка задачи:
Вставить заданное число в массив целых чисел перед последним четным элементом (если четные элементы есть). Под вставкой числа n в массив после k-го элемента понимается смещение всех элементов, начиная с (k+1)-го вправо на 1 позицию, и присваивание (k+1)-му элементу массива значения n.
Помогите пожалуйста, срочно нужно сдать, а как это сделать толком не пойму. Заранее спасибо.
Решение задачи: «Вставить заданное число в массив целых чисел перед последним четным элементом (если четные элементы есть)»
textual
Листинг программы
#include <stdio.h>
int main()
{
int MAX = 10, z = 1, m = 0, mas[20]{ 2, 4, 7, 0, 3, 9, 6, 8, 1, 5 };
while (MAX < 19) // Не более величины массива.
{
scanf("%d", &z);
for (int i = 0; i < MAX; ++i)
if (!(*(mas + i) % 2)) // Ищем последнее четное.
m = i;
if (m < MAX && m) // Двигаем массив и записываем,
{ // если четное не в самом конце и вообще есть.
for (int i = MAX++; i >= m; --i)
*(mas + i + 1) = *(mas + i);
*(mas + m) = z;
}
else
*(mas + ++MAX) = z; // Иначе записываем в конец.
for (int i = 0; i < MAX; ++i)
if (i != m)
printf("%d\n", *(mas + i));
else
printf(" %d\n", *(mas + i)); // Выделяем записанное число.
m = 0;
}
return 0;
}