Форум программистов, компьютерный форум CyberForum.ru

Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании - C++

Восстановить пароль Регистрация
 
Bambaster01
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 50
20.04.2014, 22:46     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании #1
Заданы два одномерных массива А(N) и В(N). Сформировать массив С(2*N), содержащий элементы обоих массивов, расположенные в порядке возрастании.
Не могу понять, как их соединить в один массив в порядке возрастания.
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
using namespace std;
 
int main(int *C)
{ 
        setlocale(0,"");
        srand(time(NULL));
        const int N=10;
  int *A = new int[N];
  int *B = new int[N];
  for (int i = 0; i < N; i++) 
  {
       A[i] = rand()%40 -10;
       B[i] = rand()%40 -10;
          }
     cout << "Элементы массива A: { ";
        for (int i=0; i<N; i++)
                cout << A[i] << " ";
        cout << "}" << endl;
 
        cout << "\nЭлементы массива B: {";
        for (int i=0; i<N; i++)
                cout << B[i] << " ";
        cout << "}" << endl;
        system("pause");
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 22:46     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании
Посмотрите здесь:

Сформировать массив, содержащий только те элементы иззначального массива, значение которых больше заданного числа C++
C++ Сформировать массив, в котором элементы следуют в обратном порядке
Объединить элементы 2-х массивов в один массив, содержащий все различные числа C++
Получить массив В, содержащий элементы массива А, расположенные между максимальным и минимальным элементами массива C++
C++ Создать новый массив А1, содержащий все четные элементы массива А, расположенные по возрастанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
20.04.2014, 23:10     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании #2
Можно сделать массив C, и потом отсортировать его. Либо отсортировать массивы a и b, и потом слить их в один.

Добавлено через 1 минуту
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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <algorithm>
using namespace std;
 
int main()
{
    setlocale(0, "");
    srand(time(NULL));
    const int N = 10;
    int *A = new int[N];
    int *B = new int[N];
    int *C = new int[2 * N];
    for (int i = 0; i < N; i++)
    {
        A[i] = rand() % 40 - 10;
        B[i] = rand() % 40 - 10;
    }
    cout << "Элементы массива A: { ";
    for (int i = 0; i < N; i++)
        cout << A[i] << " ";
    cout << "}" << endl;
 
    cout << "\nЭлементы массива B: {";
    for (int i = 0; i<N; i++)
        cout << B[i] << " ";
    cout << "}" << endl;
    
    sort(A, A + N);
    sort(B, B + N);
    int i = 0, j = 0;
    for (int k = 0; k < 2 * N; k++){
        if (i == N){
            C[k] = B[j++];
            continue;
        }
        if (j == N){
            C[k] = A[i++];
            continue;
        }
        if (A[i] < B[j])
            C[k] = A[i++];
        else 
            C[k] = B[j++];
    }
 
    cout << endl << "Элементы массива C: { ";
    for (int i = 0; i < 2 * N; i++)
        cout << C[i] << " ";
    cout << "}" << endl;
    system("pause");
    return 0;
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
20.04.2014, 23:13     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании #3
Цитата Сообщение от fishec Посмотреть сообщение
Можно сделать массив C, и потом отсортировать его.
самое простое
Цитата Сообщение от fishec Посмотреть сообщение
Либо отсортировать массивы a и b, и потом слить их в один.
а это уже посложнее
например два массива (отсортированные)
1 3 и 2 4
простое слияние даст
1 3 2 4
придется брать первый элемент из первого, сравнивать с первым элементом второго записывать младший, ну и так далее
Bambaster01
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 50
20.04.2014, 23:22  [ТС]     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании #4
fishec, Спасибо за помощь.
Yandex
Объявления
20.04.2014, 23:22     Сформировать массив С(2*N), содержащий элементы данных массивов, расположенные в порядке возрастании
Ответ Создать тему
Опции темы

Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru