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

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

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

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

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

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

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


Третий, четвёртый, пятый и шестой массивы должны быть минимально возможного размера.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2015, 17:13
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 44 секунды
я не понимаю, как именно он должен выглядит
0
366 / 255 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
19.05.2015, 18:32 4
йцукенгшщзхъфыв, какие проблемы возникли при выполнении? Что непонятно? Что объяснить? Могу помочь с алгоритмом, полностью программу за вас не напишут.
0
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 73
19.05.2015, 19:20  [ТС] 5
алгоритм скажите
0
366 / 255 / 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
42 / 40 / 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
Сообщений: 73
20.05.2015, 06:58  [ТС] 8
time_t t; можете, пожалуйста, объяснить, что это значит
0
119 / 33 / 19
Регистрация: 19.03.2015
Сообщений: 90
20.05.2015, 07:13 9
йцукенгшщзхъфыв,
Это функция библиотеки time.h, возвращает текущее время, используется для генерации псевдослучайных чисел в тандеме с srand. Благодаря ей каждый раз запуская программу Вы получаете разные значения.
0
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 73
20.05.2015, 17:28  [ТС] 10
А можно как-то проще сделать, без do while
0
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 73
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
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
20.05.2015, 17:47 12
Можно. Через for. Или while.
0
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
Сообщений: 73
20.05.2015, 17:50  [ТС] 14
мне надо через for
0
шКодер самоучка
2145 / 1856 / 907
Регистрация: 09.10.2013
Сообщений: 4,055
Записей в блоге: 7
20.05.2015, 18:08 15
C++
1
2
for(bool run = true; run; run = m <= 0)
    cin >> m;
как то так
0
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
20.05.2015, 22:29 16
Цитата Сообщение от йцукенгшщзхъфыв Посмотреть сообщение
do while
do while здесь необходим для того, чтобы размерность массивов задавалась пользователем исключительно неотрицательными числами. Если в этом необходимости нет, можете просто убрать эти циклы.

Не по теме:

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

0
195 / 195 / 120
Регистрация: 27.05.2011
Сообщений: 545
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
366 / 255 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
29.09.2015, 23:51 18
йцукенгшщзхъфыв, давайте наработки, если они есть.
0
-9 / 0 / 2
Регистрация: 13.02.2015
Сообщений: 73
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
366 / 255 / 64
Регистрация: 22.06.2010
Сообщений: 1,566
01.10.2015, 22:09 20
йцукенгшщзхъфыв, и какая проблема?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2015, 22:09

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

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

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

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


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

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

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