Создать третий массив, в котором нужно собрать общие элементы двух массивов - 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];//создаем третий массив
Объяснение кода листинга программы
- В первой строке кода создается третий массив с названием
mas3
. - Размер этого массива определяется как сумма размеров двух других массивов, которые обозначены переменными
size1
иsize2
. - Значение переменной
size1
равно 5, а значение переменнойsize2
равно 3. - Таким образом, размер массива
mas3
будет равен 5 + 3 = 8. - Массив
mas3
инициализируется нулевыми значениями.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д