Есть 2 одномерных массива, нужно все не общие элементы записать в 3 массив - C (СИ)
Формулировка задачи:
Помогите решить, буду очень благодарен
Решение задачи: «Есть 2 одномерных массива, нужно все не общие элементы записать в 3 массив»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int *arr1 = NULL,// Указатель на первый массив *arr2 = NULL,// Указатель на второй массив *arr3 = NULL,// Указатель на массив несовпадающих элементов N1 = 0,// Размер первого массива N2 = 0,// Размер второго массива N3 = 0;// Размер третьего массива int i = 0, j = 0, k = 0; printf("N1 = "); scanf("%d", &N1); if(N1 <= 0) { printf("N1 <= 0\n"); return 1;// выходим } arr1 = (int *) malloc(N1 * sizeof(int));// Выделяем память printf("Input array1:\n"); for(i = 0; i < N1; i++) scanf("%d", &arr1[i]); printf("N2 = "); scanf("%d", &N2); if(N2 <= 0) { printf("N2 <= 0\n"); return 1; } arr2 = (int *) malloc(N2 * sizeof(int)); printf("Input array2:\n"); for(i = 0; i < N2; i++) scanf("%d", &arr2[i]); // Сверяем первый массив со вторым for(i = 0; i < N1; i++) { for(j = 0; j < N2; j++) { if(arr1[i] == arr2[j]) break; } if(j == N2) { for(k = 0; k < N3; k++) { if(arr1[i] == arr3[k]) break; } if(k == N3) { N3++; arr3 = (int *) realloc (arr3, N3 * sizeof(int)); arr3[N3-1] = arr1[i]; } } } // Сверяем второй массив с первым for(i = 0; i < N2; i++) { for(j = 0; j < N1; j++) { if(arr2[i] == arr1[j]) break; } if(j == N1) { for(k = 0; k < N3; k++) { if(arr2[i] == arr3[k]) break; } if(k == N3) { N3++; arr3 = (int *) realloc (arr3, N3 * sizeof(int)); arr3[N3-1] = arr2[i]; } } } printf("\nN3 = %d\n", N3); printf("\nResult :\n"); if(N3 != 0) { for(i = 0; i < N3; i++) printf("%d ", arr3[i]); } else printf("empty"); printf("\n"); free(arr1); free(arr2); free(arr3); return 0; }
Объяснение кода листинга программы
В данном коде решается задача по нахождению не общих элементов в двух массивах.
- Создаются три массива:
- arr1 - первый массив;
- arr2 - второй массив;
- arr3 - массив для хранения не общих элементов.
- Пользователю предлагается ввести размер первого и второго массива.
- Затем пользователю предлагается ввести элементы первого и второго массива.
- Далее происходит сравнение элементов первого и второго массива, если элементы совпадают, то они не добавляются в массив arr3.
- Если после сравнения элементов первого и второго массива размер массива arr3 больше нуля, то пользователю выводятся не общие элементы массива arr3.
- В конце программы освобождаются выделенные области памяти. Таким образом, код решает задачу по нахождению не общих элементов в двух массивах.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д