С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 12
1

Поместить в третий массив общие элементы двух массивов

03.04.2016, 19:45. Показов 3186. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте. никак не могу додуматься как написать цикл по перебору элементов массива. Задача такая: есть два динамических массива. Нужно поместить в третий общие елементы. Помогите пожалуйста. Спасибо
вот начало

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void Create_A(int * &arrA, int sizeA)
{
    srand(unsigned(time(0)));
    if (sizeA <= 0)
        sizeA = 1;
    arrA = new int[sizeA];
    if (arrA != nullptr)
        for (int i = 0; i < sizeA; ++i)
            arrA[i] =-5 + rand() % 30;
 
 
}
void Create_B(int * &arrB, int sizeB)
{
    srand(unsigned(time(0)));
    if (sizeB <= 0)
        sizeB = 1;
    arrB = new int[sizeB];
    if (arrB != nullptr)
        for (int i = 0; i < sizeB; ++i)
            arrB[i] = -10 + rand() % 28;
 
 
}
 
void Print(const int *arr, int size){
    if (arr != nullptr)
        for (int i = 0; i < size; ++i)
            cout << arr[i] << "\t";
    else
        cout << "Array does not exist!\n";
    cout << endl;
}
int main()
{
 
    int * ArrA = NULL, sizeA = 20;
    int * ArrB = NULL, sizeB = 20;
    int * ArrC = NULL, size = 0;
    Create_A(ArrA, sizeA);
    Create_B(ArrB, sizeB);
    cout << "Array A:\n";
    Print(ArrA, sizeA);
    cout << "Array B:\n";
    Print(ArrB, sizeB);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2016, 19:45
Ответы с готовыми решениями:

Переписать в третий массив общие элементы первых двух массивов без повторений
Даны 2 массива размерности M и N соответственно. Необходимо переписать в третий массив общие...

Необходимо переписать в третий массив общие элементы первых двух массивов без повторений
не выводит 3-й массив..(((( В чем трудность не понимаю.... #include&lt;iostream&gt;...

Переписать в третий массив элементы данных двух массивов
Даны два массива A и B, заполненные случайными числами (m и n задаются пользователем). ...

Все различающиеся элементы двух исходных массивов скопировать в третий массив
Ребята, помогите решить, только начал учить С++ Есть 2 одномерных массива, нужно все не общие...

5
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
03.04.2016, 19:54 2
Брать элемент у первого массива и сравнивать с каждым элементом второго, как только нашлось совпадение записываем этот элемент в третий массив и повторяем итерацию. Нет?
C++
1
2
3
4
5
6
7
int k = 0;
for(int i = 0; i < arr1.size(); ++i)
    for(int j = 0; j < arr2.size(); ++j) 
        if(arr1[i] == arr2[j]) {
        arr3[k++] = arr1[i];
        break;
   }
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 12
03.04.2016, 20:00  [ТС] 3
Так. И проверять каждый раз нет ли у массива arr3 этого элемента. Только не могу никак его доработать.
0
Модератор
Эксперт С++
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,126
03.04.2016, 20:07 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
using namespace std;
void Create(int * &arrA, int sizeA)
{
    if (sizeA <= 0)
        sizeA = 1;
    arrA = new int[sizeA];
    if (arrA != NULL)
        for (int i = 0; i < sizeA; ++i)
            arrA[i] =-15 + rand() % 31;
}
 
void Print(const int *arr, int size){
    if (arr != NULL)
        for (int i = 0; i < size; ++i)
            cout << arr[i] << "\t";
    else
        cout << "Array does not exist!\n";
    cout << endl;
}
int Select(int *arrA, int sizeA,int *arrB, int sizeB,int*& arrC)
{
 
   arrC = new int[sizeA];
   int k=0;
   for (int i = 0; i < sizeA; ++i)
   {
       for(int j=0;j<sizeB;j++)
           if(arrA[i]==arrB[j])
           {
               arrC[k++]=arrA[i];
               break;
           }
   }
   return k;
}
int main()
{
 
    int *ArrA,*ArrB,*ArrC;
    int sizea=20;
    Create(ArrA, sizea);
    cout << "Array A:\n";
    Print(ArrA, sizea);
    int sizeb=30;
    Create(ArrB, sizeb);
    cout << "Array B:\n";
    Print(ArrB, sizeb);
    int sizec=Select(ArrA,sizea,ArrB,sizeb,ArrC);
    Print(ArrC, sizec);
    delete[] ArrA;
    delete[] ArrB;
    delete[] ArrC;
    system("pause");
    return 0;
}
2
Вездепух
Эксперт CЭксперт С++
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,870
03.04.2016, 20:27 5
Цитата Сообщение от g26 Посмотреть сообщение
srand(unsigned(time(0)));
Манера вызывать srand(unsigned(time(0))) в программе несколько раз приведет к тому, что оба массива окажутся одинаковыми. Потом автор кода будет постить удивленные вопросы из разряда, "почему у меня генератор случайных чисел генерирует одни и те же числа".
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 12
03.04.2016, 20:32  [ТС] 6
TheCalligrapher, Не будет. Автор поста об этом знает.
0
03.04.2016, 20:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2016, 20:32
Помогаю со студенческими работами здесь

Создать третий массив, в котором нужно собрать элементы двух заданных массивов
Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: Элементы...

Создать массив минимально возможного размера, в котором нужно собрать общие элементы двух заданных массивов
Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив...

Cоздать массив минимально возможного размера, поместив в него общие элементы двух исходных массивов без повторений
Добрый день ,я немного запутался в решении. Помогите, если кто понимает, заранее благодарен. Вот...

Создать третий массив, в котором нужно собрать общие элементы двух массивов
Даны два массива: A и B. Необходимо создать третий массив, в котором нужно собрать общие элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru