Создать третий массив, в котором нужно собрать общие элементы двух массивов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны два массива: A[n] и B[n]. Необходимо создать третий массив, в котором нужно собрать общие элементы двух массивов. Для работы с массивами используйте указатели.
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    
    const int size1 = 6;
    const int size2 = 8;
    int mas1[size1], mas2[size2];//создаем 2 массива
        
    int *ptr1 = &mas1[0];//создаем указатели на массивы
    int *ptr2 = &mas2[0];
 
    printf("Первый массив:\n");
 
    for (int i = 0; i<size1; i++)
    {
        *(ptr1 + i) = rand() % 10;
        printf("%d ", ptr1[i]);
    }
    printf("\n");
    printf("Второй массив:\n");
 
    for (int i = 0; i<size2; i++)
    {
        *(ptr2 + i) = rand() % 10;
        printf("%d ", ptr2[i]);
    }
    printf("\n");
    
    int mas3[size1 + size2];//создаем третий массив
    int *ptr3 = &mas3[0];
    int temp = 0;//переменная для записи элементов в массив
 
    for (int i = 0; i<size1; i++)
    {
        for (int j = 0; j<size2; j++)
        {
            if (*(ptr1 + i) == *(ptr2 + j))//если значения в массивах равны, то пишем их в третий массив
            {
                *(ptr3 + temp) = *(ptr1 + i);
                temp++;
                break;
            }
        }
    }
 
    printf("третий массив:\n");
 
    for (int i = 0; i<temp; i++)
    {
        printf("%d ", ptr3[i]);
    }
    printf("\n");

    return 0;
    }
Все работает. Только как сделать проверку, если общих чисел несколько, чтоб они не писались в третий массив?

Решение задачи: «Создать третий массив, в котором нужно собрать общие элементы двух массивов»

textual
Листинг программы
int mas3[size1 + size2];//создаем третий массив

Объяснение кода листинга программы

  1. В первой строке кода создается третий массив с названием mas3.
  2. Размер этого массива определяется как сумма размеров двух других массивов, которые обозначены переменными size1 и size2.
  3. Значение переменной size1 равно 5, а значение переменной size2 равно 3.
  4. Таким образом, размер массива mas3 будет равен 5 + 3 = 8.
  5. Массив mas3 инициализируется нулевыми значениями.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы