0 / 0 / 0
Регистрация: 05.02.2020
Сообщений: 20
1

Из двух масивов создать третий из разных элементов

07.02.2020, 22:26. Показов 1190. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!!!!
Помогите, пожалуйста, с задачкой :
Даны два массива: А [n] и B [m], на основе которых следует создать новый массив,
минимально возможного размера, в котором будут только те элементы масива А, которых нет в масиве В ;
Вот написал , только проблема в том что третий масив не минимального размера(обьеденяет два масива и елементы удваиваются и т.д.)
Спасибо!!!
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
int n;
int m;
cin >> n;
cin >> m;
int* A = new int[n];
int* B = new int[m];
for (int i = 0; i < n; i++)
{
    A[i] = rand() % 10 ;
}
for (int i = 0; i < m; i++)
{
    B[i] = rand() % 10;
}
int count = 0;
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        if (A[i] != B[j]) count++;
    }
}
int k = 0;
int* C = new int[count];
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        if (A[i] != B[j]) C[k++] = A[i];
    }
}
for (int i = 0; i < count; i++)
{
    cout << C[i] << " ";
}
delete[] A;
delete[] B;
delete[] C;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2020, 22:26
Ответы с готовыми решениями:

Из двух масивов сформировать третий по указанному правилу
2)Даны действительные числа a1, ..., a28; b1, ..., b28. Члены последовательности c1, ..., c29...

Как из двух однонаправленных списков создать третий, который состоит из нечетных элементов предыдущих двух?
ребят,подскажите пожалуйста как из двух однонаправленных списка создать третий который состоит из...

Создать третий массив из элементов двух данных
Подскажите, пожалуйста, как сформировать массив С между А и В #include &quot;stdafx.h&quot; #include...

Создать третий массив, каждый элемент которого равен сумме соответствующих элементов двух первых
Даны два двумерных массива одинакового размера. Создать третий массив, каждый элемент которого...

8
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
07.02.2020, 22:38 2
Лучший ответ Сообщение было отмечено Fanot как решение

Решение

Вы увеличиваете счетчик и записываете элемент каждый раз, когда он не совпадает с элементом B, а нужно это делать один раз, проверив все элементы из B. Например, вот так:
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
...
for (int i = 0; i < n; i++)
{
    bool ok = true;
    for (int j = 0; j < m; j++)
    {
        if (A[i] == B[j]) 
        {
            ok=false;
            break;
        }
    }
    if(ok) count++;
}
int k = 0;
int* C = new int[count];
for (int i = 0; i < n; i++)
{
    bool ok = true;
    for (int j = 0; j < m; j++)
    {
        if (A[i] == B[j]) 
        {
            ok = false;
            break;
        }
    }
    if(ok) C[k++] = A[i];
}
...
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.02.2020, 23:10 3
Цитата Сообщение от Fanot Посмотреть сообщение
минимально возможного размера
похоже предварительно нужно удалить повторяющиеся элементы первого массива
0
0 / 0 / 0
Регистрация: 05.02.2020
Сообщений: 20
07.02.2020, 23:17  [ТС] 4
что-то мне эти масивы вообще тяжело даются...

Добавлено через 2 минуты
да это я понял, не могу додуматся реализовать....
0
369 / 310 / 65
Регистрация: 14.10.2014
Сообщений: 1,318
07.02.2020, 23:29 5
Fanot, подозреваю (но сам не сочинял), что эту задачу довольно несложно можно решить с помощью STL::SET<> . Но это, естественно, если STL можно использовать.
Алгоритм был бы примерно такой:
кладем в множество элементы из массива B, а потом, в него же складываем элементы из массива A операцией insert(), проверяя в if(), что она нам вернет - если истину, то добавляем этот элемент в новый массив, если ложь - то ничего не добавляем. Этот новый массив и есть решение задачи.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.02.2020, 23:41 6
Цитата Сообщение от Fanot Посмотреть сообщение
что-то мне эти масивы вообще тяжело даются...
просто Вы все задачи реализуете задачи на динамических массивах. обратите внимание на вектор, с которым реализация будет компактнее. если по вектору есть вопросы - задавайте.
Цитата Сообщение от Fanot Посмотреть сообщение
да это я понял, не могу додуматся реализовать....
уже Вам показывал пример с функцией unique. но если хотите можно и без функции - сначала отсортировать массив, затем пройтись по парам

Добавлено через 11 минут
Recrut_rf, если можно использовать set, для этой задачи это отличный вариант
0
0 / 0 / 0
Регистрация: 05.02.2020
Сообщений: 20
07.02.2020, 23:43  [ТС] 7
О векторе еще не изучал, и понятия не имею что это и к чему.. ПРосто задания по динамическим масивам.
0
369 / 310 / 65
Регистрация: 14.10.2014
Сообщений: 1,318
07.02.2020, 23:49 8
Цитата Сообщение от Yetty Посмотреть сообщение
из элементов массива A
которых нет в массиве B.

Добавлено через 1 минуту
а множество дубликаты не поддерживает.

Добавлено через 4 минуты

Не по теме:


Yetty, сейчас уже довольно поздно и мозги у меня уже плохо соображают, поэтому возможно я что-то не учёл - в любом случае, пока не реализуешь алгоритм - не узнаешь все его косяки :D, а свой алгоритм я так - в голове по-быстрому прогнал и всё. Он вообще возможно даже неправильный... :D



Добавлено через 45 секунд
Fanot, без STL это написать конечно можно, но тяжко
0
817 / 504 / 211
Регистрация: 19.01.2019
Сообщений: 1,196
07.02.2020, 23:56 9
Есть в stl такая штука...
http://www.cplusplus.com/refer... ifference/
0
07.02.2020, 23:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2020, 23:56
Помогаю со студенческими работами здесь

Создать третий массив из элементов двух массивов одинаковой длины, которые являются попарно не четными
Помогите в решении данной задачки. Создать третий массив из элементов двух массивов одинаковой...

Создать третий массив той же размерности, каждый элемент которого равен сумме соответствующих элементов первых двух.
Даны два двумерных массива одинаковой размерности. Создать третий массив той же размерности, каждый...

Создать третий массив такого же размера каждый элемент которого равен сумме соответствующих элементов двух первых массивов
Даны два двумерных массива одинаковых размеров. а) Создать третий массив такого же размера каждый...

Создать третий массив того же размера, каждый элемент которого равен сумме соответствующих элементов двух первых массивов
Даны два двумерных массива размером nxm.Создать третий массив того же размера, каждый элемент...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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