На базе динамического массива выделить другой, в котором будут неповторяющиеся чётные числа - C (СИ)
Формулировка задачи:
Ребят, помогайте пожалуйста)
Дан динамический массив, выделить другой, в котором будут не повторяющиеся четные числа(без разницы,какой ввод массива рандомный или с клавиатуры). Написать отдельно функцию для заведения памяти .
Спасибо)
Решение задачи: «На базе динамического массива выделить другой, в котором будут неповторяющиеся чётные числа»
textual
Листинг программы
#include <stdio.h> #include <malloc.h> int main () { int *A,*U,i,j,n,p,m; printf("n="); scanf("%d",&n); A=(int *) calloc(sizeof(int),n); for (i=0; i<n; i++) { printf("A[%d]=",i); scanf("%d",&A[i]); } B=(int *) calloc(sizeof(int),n); m=-1; for (i=0; i<n; i++) { p=0; for (j=0; j<m; j++) if (B[j]==A[i]) { p=-1; break; } if (p==0) B[++m]=A[i]; } printf("Uniq elements:\n"); for (j=0; j<m; j++) printf("%d ",B[j]); printf("\n"); free(A); free(B); }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Пользователю предлагается ввести количество элементов массива (n).
- Выделяется динамический массив A размером n, который будет заполняться числами.
- Пользователю предлагается ввести n чисел и сохранить их в массиве A.
- Выделяется динамический массив B размером n, который будет хранить уникальные четные числа.
- Инициализируется переменная m=-1, которая будет использоваться для контроля количества уникальных чисел.
- В цикле обрабатываются все числа в массиве A.
- Если число уже есть в массиве B, то оно пропускается.
- Если число не найдено в массиве B, то оно добавляется в конец массива B и значение m увеличивается на 1.
- Выводится список уникальных четных чисел.
- Массивы A и B освобождаются от выделенной памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д