Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- const int ARR_SIZE = 5;
- void fillArr(int arr[], int size);
- int Intersect(int arr1[], int arr2[], int sum_size, int *res);
- int main()
- {
- srand(time(NULL));
- int arr1[ARR_SIZE]; // объявляем массивы, указатель на массив результата
- int arr2[ARR_SIZE];
- int result[ARR_SIZE + 1];
- int *ptr = result;
- int i = 0;
- fillArr(arr1, ARR_SIZE); fillArr(arr2, ARR_SIZE); // заполняем массивы случайными числами
- printf("First array: \n");
- for (i; i < ARR_SIZE; i++) // выводим массивы на экран
- {
- printf("%d", arr1[i]);
- printf("\n");
- }
- printf("Second array: \n");
- for (i = 0; i < ARR_SIZE; i++)
- {
- printf("%d", arr2[i]);
- printf("\n");
- }
- int sum = 2 * ARR_SIZE;
- int size = Intersect(arr1, arr2, sum, ptr); // находим пересечения, изменяем массив результата по указателю, возвращаем место, до которого выводим массив результата (size)
- printf("Result: \n");
- for (i = 1; i < size; i++)
- {
- printf("%d\n", result[i]); // выводим массив
- }
- getchar(); // чтобы окно не закрылось сразу в OS Windows
- return 0;
- }
- void fillArr(int arr[], int size)
- {
- int i = 0;
- for (i = 0; i < size; i++)
- {
- arr[i] = rand() % 5; // присваиваем части массива числа от 0 до 5
- }
- }
- int Intersect(int arr1[], int arr2[], int sum_size, int *res)
- {
- int i = 0;
- int size = 0;
- int count = 0;
- short bad_num = 0;
- for (i = 0; i < ARR_SIZE; i++)
- {
- int j = 0;
- int isBad = 0;
- for (j = 0; j < ARR_SIZE; j++)
- {
- if (arr1[i] == arr2[j]) // если одно из чисел первого массива равно хоть одному числу второг, то:
- {
- int x = 0;
- for (x; x < ARR_SIZE; x++)
- {
- if (res[x] == arr1[i]) // если в массиве результатов уже есть такое число, то исключаем данный результат из вывода
- {
- isBad = 1;
- }
- }
- if (isBad != 1) // если все проверки прошли, то добавляем в результат элемент массива
- {
- size++;
- res[size] = arr1[i];
- }
- }
- }
- }
- return size;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement