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