Как удалить нечетные элементы из массива? - C (СИ)
Формулировка задачи:
Как удалить нечетные елементы из массива?
Помогите пожалуйста..Заранее спасибо.
Решение задачи: «Как удалить нечетные элементы из массива?»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <string.h> #define N 7 #define PRMS(x, n) \ for(int i = 0; i<(n); ++i) \ printf("%d ", (x)[i]); puts("") int mas[N]={3, 5, 2, 7, 4, 65, 34}; int main (void) { int i, j; PRMS(mas, N); for(i = 0, j=N; i<j; ++i) { if(!abs(mas[i]%2))continue; memmove(mas+i, mas+i+1, sizeof(int)*(j-i-1)); --j; --i; } PRMS(mas, j); return 0; }
Объяснение кода листинга программы
Вот что делает данный код:
- Включает необходимые заголовочные файлы.
- Определяет массив и его размер.
- Выводит элементы массива на экран.
- В функции main() объявляет переменные i, j, которые будут использоваться в цикле.
- Проходит по всем элементам массива с помощью цикла PRMS(mas, N).
- Использует условный оператор для проверки чётности каждого элемента массива.
- Если элемент чётный, то с помощью функции memmove() перемещает его на одну позицию вправо.
- Уменьшает значение переменной j на 1, так как один элемент удален.
- Уменьшает значение переменной i на 1, так как один элемент удален.
- Повторяет шаги 5–9 до тех пор, пока все нечетные элементы не будут удалены.
- Выводит отформатированный массив на экран.
- Завершает программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д