Есть 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.
- В конце программы освобождаются выделенные области памяти. Таким образом, код решает задачу по нахождению не общих элементов в двух массивах.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д