Удаление элементов из целочисленного массива - C (СИ)
Формулировка задачи:
Описать функцию RemoveX(A, N, X), удаляющую из целочисленного массива A размера N элементы, равные целому числу X. Массив A и число N являются входными и выходными параметрами. С помощью этой функции удалить числа XA, XB, XC из массивов A, B, C размера NA, NB, NC соответственно и вывести размер и содержимое полученных массивов.
Решение задачи: «Удаление элементов из целочисленного массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> void rem_elt(int *A, int *n, int x) { int i_from, i_to; i_from=0; i_to=0; while (1) { if (i_from > *n) break; if (A[i_from]==x) i_from++; else A[i_to++]=A[i_from++]; } *n=i_to-1; return; } int main(int argc, char *argv[]) { int Z[]={1,2,3,1,2,3,1,2,3,2,2,2}; int n=sizeof(Z)/sizeof(int); int i; printf("Initial array: "); for (i=0; i<n; i++) printf("%d ",Z[i]); printf("\n"); rem_elt(Z,&n,2); printf("Array after removing: "); for (i=0; i<n; i++) printf("%d ",Z[i]); printf("\n"); system("PAUSE"); return 0; }
Объяснение кода листинга программы
В данном коде реализована функция rem_elt для удаления элементов из целочисленного массива.
- В функции rem_elt объявлены три переменные:
- i_from и i_to — индексы, которые используются для обхода массива,
- x — элемент, который необходимо удалить из массива.
- В цикле while происходит обход массива от начала до конца. Если встретится элемент x, то его пропускают, увеличивая i_from на 1. Если элемент не равен x, то его копируют в новую позицию i_to, увеличивая i_to и i_from на 1.
- После выхода из цикла, количество элементов в массиве уменьшается на 1, так как один элемент был удален.
- В функции main создается массив Z и инициализируется значениями {1,2,3,1,2,3,1,2,3,2,2,2}.
- Размер массива вычисляется как разница между размером массива и размером одного элемента, делится на размер одного элемента и округляется до целого числа в меньшую сторону.
- В цикле printf выводится начальный массив.
- Вызывается функция rem_elt, передавая в нее указатель на массив Z и указатель на переменную n. Функция удаляет из массива все вхождения элемента 2.
- Выводится массив после удаления элемента 2.
- Вызывается функция system для приостановки выполнения программы до нажатия клавиши.
- Возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д