Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/35: Рейтинг темы: голосов - 35, средняя оценка - 4.80
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
1

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

19.05.2015, 17:13. Просмотров 7225. Ответов 21
Метки нет (Все метки)

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

2. Перенести в четвёртый первый массив и элементы из второго, которых нет в первом (объединение массивов).

3. Перенести в пятый только элементы, которые есть и в первом и во втором (пересечение массивов).

4. Перенести в шестой элементы из первого, которые не повторяются во втором и элементы из второго, которые не повторяются в первом (разность массивов).


Третий, четвёртый, пятый и шестой массивы должны быть минимально возможного размера.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2015, 17:13
Ответы с готовыми решениями:

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

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

Все совершённые числа из двух массивов переписать в третий массив и найти четыре наименьших элемента
Человек не может в C++. Заданы массивы целых чисел X(n) и Y(k). Все совершённые числа из этих...

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

Из данных двух массивов образовать третий массив
Из данных двух массивов образуется третий массив: сначала элементы первого массива, в конце...

21
Jeremy Clarkson
Заблокирован
19.05.2015, 17:20 2
В чём твой вопрос форуму?
0
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
19.05.2015, 18:04  [ТС] 3
написать код в с++

Добавлено через 44 секунды
я не понимаю, как именно он должен выглядит
0
Zoominger
364 / 253 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
19.05.2015, 18:32 4
йцукенгшщзхъфыв, какие проблемы возникли при выполнении? Что непонятно? Что объяснить? Могу помочь с алгоритмом, полностью программу за вас не напишут.
0
19.05.2015, 18:32
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
19.05.2015, 19:20  [ТС] 5
алгоритм скажите
0
Zoominger
364 / 253 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
19.05.2015, 19:33 6
йцукенгшщзхъфыв, рандом используется так:
random_number = firs_value + rand() % last_value;
Создаёте два динамических массива (размерности N и M):
C++ (Qt)
1
int *first_array = new int[N];
Двумя циклами заполняете первые два массива:
C++ (Qt)
1
for(int i=0; i<N; i++)first_array = -100 + rand() % 100;
Второй - аналогично. Далее объединяете их в третий дин. массив:
C++ (Qt)
1
2
3
int *third_array = new int[N+M];
for(int i=0; i<N; i++)third_array[i] = first_array[i];
for(int i=N; i<M; i++)third_array[i] = second_array[i];
Остальное - аналогично, только условия добавить.
0
Mamoruhiko
41 / 39 / 47
Регистрация: 13.05.2015
Сообщений: 222
19.05.2015, 19:40 7
1, 2, 3:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void main()
{
    time_t t; srand((unsigned) time(&t));
    int n, m;
    cout << "Enter size of Array[m]: ";
    do
    {
        cin >> m;
    }while(m<=0);
    cout << "Enter size of Array[n]: ";
    do
    {
        cin >> n;
    }while(n<=0);
    int *a = new int[m], *b = new int[n];
    for (int i=0; i<m; i++)
    {
        a[i]=rand()%100-50;
    }
    for (int i=0; i<n; i++)
    {
        b[i]=rand()%100-50;
    }
    //
    cout << "Array[m]: ";
    for (int i=0; i<m; i++)
    {
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Array[m]: ";
    for (int i=0; i<n; i++)
    {
        cout << b[i] << " ";
    }
    cout << endl;
    //
    int *c=new int[m+n+1];
    for (int i=0; i<m; i++)
    {
        c[i]=a[i];
    }
    for (int i=m, j=0; i<m+n; i++)
    {
        c[i]=b[j];
        j++;
    }
    cout << "Array[m...n]: ";
    for (int i=0; i<m+n; i++)
    {
        cout << c[i] << " ";
    }
    cout << endl;
    //
    int chek=0;
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (a[i]==b[j])
            chek++;
        }
    }
    if (chek!=0)
    {
        int *d = new int[chek];
        for (int i=0, k=0; i<m; i++)
        {
            for (int j=0; j<n; j++)
            {
                if (a[i]==b[j])
                {
                d[k]=a[i];
                k++;
                }
            }
        }
        cout << "Array[m+n]: ";
        for (int i=0; i<chek; i++)
        {
            cout << d[i] << " ";
        }
        cout << endl;
    }
    else cout << "Array[m+n] not found" << endl;
}
1
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
20.05.2015, 06:58  [ТС] 8
time_t t; можете, пожалуйста, объяснить, что это значит
0
idm
119 / 33 / 19
Регистрация: 19.03.2015
Сообщений: 90
20.05.2015, 07:13 9
йцукенгшщзхъфыв,
Это функция библиотеки time.h, возвращает текущее время, используется для генерации псевдослучайных чисел в тандеме с srand. Благодаря ей каждый раз запуская программу Вы получаете разные значения.
0
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
20.05.2015, 17:28  [ТС] 10
А можно как-то проще сделать, без do while
0
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
20.05.2015, 17:44  [ТС] 11
Можно как-то без do while?


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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void main()
{
    time_t t; srand((unsigned) time(&t));
    int n, m;
    cout << "Enter size of Array[m]: ";
    do
    {
        cin >> m;
    }while(m<=0);
    cout << "Enter size of Array[n]: ";
    do
    {
        cin >> n;
    }while(n<=0);
    int *a = new int[m], *b = new int[n];
    for (int i=0; i<m; i++)
    {
        a[i]=rand()%100-50;
    }
    for (int i=0; i<n; i++)
    {
        b[i]=rand()%100-50;
    }
    //
    cout << "Array[m]: ";
    for (int i=0; i<m; i++)
    {
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Array[m]: ";
    for (int i=0; i<n; i++)
    {
        cout << b[i] << " ";
    }
    cout << endl;
    //
    int *c=new int[m+n+1];
    for (int i=0; i<m; i++)
    {
        c[i]=a[i];
    }
    for (int i=m, j=0; i<m+n; i++)
    {
        c[i]=b[j];
        j++;
    }
    cout << "Array[m...n]: ";
    for (int i=0; i<m+n; i++)
    {
        cout << c[i] << " ";
    }
    cout << endl;
    //
    int chek=0;
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (a[i]==b[j])
            chek++;
        }
    }
    if (chek!=0)
    {
        int *d = new int[chek];
        for (int i=0, k=0; i<m; i++)
        {
            for (int j=0; j<n; j++)
            {
                if (a[i]==b[j])
                {
                d[k]=a[i];
                k++;
                }
            }
        }
        cout << "Array[m+n]: ";
        for (int i=0; i<chek; i++)
        {
            cout << d[i] << " ";
        }
        cout << endl;
    }
    else cout << "Array[m+n] not found" << endl;
}
0
XZentus
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
20.05.2015, 17:47 12
Можно. Через for. Или while.
0
Burlex
0 / 0 / 1
Регистрация: 27.04.2015
Сообщений: 23
20.05.2015, 17:48 13
а чем вам не угодил
C++
1
2
do{
}while();
0
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
20.05.2015, 17:50  [ТС] 14
мне надо через for
0
Max Dark
шКодер самоучка
2052 / 1806 / 883
Регистрация: 09.10.2013
Сообщений: 3,947
Записей в блоге: 7
Завершенные тесты: 2
20.05.2015, 18:08 15
C++
1
2
for(bool run = true; run; run = m <= 0)
    cin >> m;
как то так
0
Mamoruhiko
41 / 39 / 47
Регистрация: 13.05.2015
Сообщений: 222
20.05.2015, 22:29 16
Цитата Сообщение от йцукенгшщзхъфыв Посмотреть сообщение
do while
do while здесь необходим для того, чтобы размерность массивов задавалась пользователем исключительно неотрицательными числами. Если в этом необходимости нет, можете просто убрать эти циклы.

Не по теме:

С меня, например, преподаватель их требует.

0
mymedia
194 / 194 / 120
Регистрация: 27.05.2011
Сообщений: 544
30.05.2015, 13:14 17
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
int m, n;
cin >> m >> n;
vector<int> A(m), B(n);
srand(time(NULL));
auto random_generator = []{ return rand() % 20 - 10; };
generate(A.begin(), A.end(), random_generator);
generate(B.begin(), B.end(), random_generator);
cout << "Массив A: ";
copy(A.begin(), A.end(), ostream_iterator<int>(cout, " "));
cout << endl << "Массив B: ";
copy(B.begin(), B.end(), ostream_iterator<int>(cout, " "));
cout << endl;
sort(A.begin(), A.end());
sort(B.begin(), B.end());
vector<int> C, D, E;
set_union(A.begin(), A.end(), B.begin(), B.end(), back_inserter(C));
set_intersection(A.begin(), A.end(), B.begin(), B.end(), back_inserter(D));
set_difference(A.begin(), A.end(), B.begin(), B.end(), back_inserter(E));
cout << "Массив C: ";
copy(C.begin(), C.end(), ostream_iterator<int>(cout, " "));
cout << endl  << "Массив D: ";
copy(D.begin(), D.end(), ostream_iterator<int>(cout, " "));
cout << endl  << "Массив E: ";
copy(E.begin(), E.end(), ostream_iterator<int>(cout, " "));
cout << endl;
0
Zoominger
364 / 253 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
29.09.2015, 23:51 18
йцукенгшщзхъфыв, давайте наработки, если они есть.
0
йцукенгшщзхъфыв
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 72
01.10.2015, 22:00  [ТС] 19
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
57
58
59
60
61
62
63
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void main()
{
    setlocale(LC_CTYPE,"rus");
    srand((unsigned) time(NULL));
    int n, m, min=-10, max=10;;
    cout << "Массив[m]: ";
   
    cout << "Введите размер массива[n]: ";
    int *a = new int[m];
    int *b = new int[n];
    for (int i=0; i<m; i++)
    {
        a[i]=rand()%(max-min+1);
    }
    for (int i=0; i<n; i++)
    {
        b[i]=rand()%(max-min+1);
    }
    
    cout << "Массив[3]: ";
    for (int i=0; i<m; i++)
    {
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Массив[4]: ";
    for (int i=0; i<n; i++)
    {
        cout << b[i] << " ";
    }
    cout << endl;
    
    int *c=new int[m+n+1];
    for (int i=0; i<m; i++)
    {
        c[i]=a[i];
    }
    for (int i=m, j=0; i<m+n; i++)
    {
        c[i]=b[j];
        j++;
    }
    cout << "Массив[1..2]: ";
    for (int i=0; i<m+n; i++)
    {
        cout << c[i] << " ";
    }
    cout << endl;
   
    int ch=0;
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (a[i]==b[j])
            ch++;
        }
    }
0
Zoominger
364 / 253 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
01.10.2015, 22:09 20
йцукенгшщзхъфыв, и какая проблема?
0
01.10.2015, 22:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2015, 22:09

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

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

Записать элементы двух массивов в третий
Т.е нужно записать элементы массивов G и P в массив V (не складывая элементы с друг...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.