Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
1 / 1 / 0
Регистрация: 15.02.2018
Сообщений: 199

Как объединить два одномерных массива в один двумерный массив?

05.05.2018, 10:21. Показов 9926. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
можно ли как нибудь объединить два массива в один ДВУМЕРНЫЙ МАССИВ?
Заранее спсибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void klava2(int* &a1, int* &b1)
{
    cout << ("Введите кол-во строк 1 массива  = ");
    cin >> n;
    a1 = new int[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Введите " << i + 1 << " строки = ";
        cin >> a1[i];
    }
    cout << ("Введите кол-во строк 2 массива = ");
    cin >> m;
    b1 = new int[m];
    for (int i = 0; i < m; i++)
    {
        cout << "Введите " << i + 1 << " строки = ";
        cin >> b1[i];
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void zadacha2(int* &a1, int* &b1)
{
 
    int M=3;
    for (int i = 0; i < n; i++)
    {
        cout << a1[i] << "   ";
    }
    cout << endl;
    for (int i = 0; i < m; i++)
    {
        cout << b1[i] << "   ";
    }
    cout << endl;
    for (int i = 0; i < n; i++)
    for (int i = 0; i < m; i++)
    if (a1[i] >= 0.9*M&&a1[i] <= 1.1*M && b1[i] >= 0.9*M&&b1[i] <= 1.1*M)
        cout << "(" << соедененныймассив a1 и b1 << ";" << соедененныймассив a1 и b1 << ")";
     
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2018, 10:21
Ответы с готовыми решениями:

Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов
Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов. Помогите написать код на С++.

Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента
Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и...

Как объединить два одномерных массива в один двумерный?
Приветствую! В JavaScript разбираюсь не особо сильно... в процессе освоения... Столкнулся с трудностями... есть xml-фаил.... ...

10
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
05.05.2018, 10:28
Цитата Сообщение от nonameprogger Посмотреть сообщение
cout << ("Введите кол-во строк 1 массива = ");
В массиве, грубо говоря, всего одна строка.

Цитата Сообщение от nonameprogger Посмотреть сообщение
можно ли как нибудь объединить два массива в один ДВУМЕРНЫЙ МАССИВ?
С разными длинами можно в вектор сунуть.
С одинаковыми можно объединить в массив массивов.

В принципе, можно оба массива запихнуть в 1 массив и оперируя n,m выводить нужные "строки и столбцы"
0
1 / 1 / 0
Регистрация: 15.02.2018
Сообщений: 199
05.05.2018, 10:31  [ТС]
Цитата Сообщение от SuperKir Посмотреть сообщение
С одинаковыми можно объединить в массив массивов.
можно примерный код?SuperKir,
0
61 / 28 / 24
Регистрация: 28.09.2017
Сообщений: 399
05.05.2018, 10:31
nonameprogger,
Цитата Сообщение от nonameprogger Посмотреть сообщение
два массива в один ДВУМЕРНЫЙ МАССИВ
Конечно, почему бы и нет. Пусть, например, у нас будут 2 одномерных массива a и b, и двумерный c. Есть много вариантов объединения, вот один из них:
C++
1
2
3
4
5
6
7
8
int a[10], b[10], c[2][10];
 
for(int i = 0; i < 2; i++)
    for(int j = 0; j < 10; j++)
        if(i == 0)
            c[i][j] = a[j];
        else
            c[i][j] = b[j];
Здесь в c[0][0...9] будет содержаться массив a, а в c[1][0...9] - b.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
05.05.2018, 10:42
nonameprogger,
Вот костыль с разными:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n = 10, m = 5;
    int *arrA = new int[n] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    int *arrB = new int[m] {-1, -2, -3, -4, -5};
    for (int i = 0; i < n; i++)
        cout << arrA[i] << " ";
    cout << endl;
    for (int i = 0; i < m; i++)
        cout << arrB[i] << " ";
    cout << endl;
 
    int *arrC = new int[n + m];
    for (int i=0; i<n+m; i++)
    {
        if (i < n)
            arrC[i] = arrA[i];
        else
            arrC[i] = arrB[i - n];
    }
    cout << endl;
    for (int i=0; i<n+m; i++)
    {
        if (i == n)
            cout << endl;
        cout << arrC[i] << " ";
    }
//очистка памяти
}
Вот для одинаковых (размерность [n,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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n = 10, m = 10;
    int *arrA = new int[n] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    int *arrB = new int[m] {-1, -2, -3, -4, -5, -6, -7, -8, -9, -10};
    for (int i = 0; i < n; i++)
        cout << arrA[i] << " ";
    cout << endl;
    for (int i = 0; i < m; i++)
        cout << arrB[i] << " ";
    cout << endl;
 
    int **arrC = new int*[2];
 
    for (int i=0; i<2; i++)
    {
        arrC[i] = new int[n];
        for (int j=0; j<n; j++)
        {
            if (i == 0)
                arrC[i][j] = arrA[j];
            else
                arrC[i][j] = arrB[j];
        }
    }
    cout << endl;
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < n; j++)
            cout << arrC[i][j] << " ";
        cout << endl;
    }
//очистка памяти
}
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
05.05.2018, 11:38
я бы так сделал:
C++
1
2
3
4
int** array_2d = new int*[2];
 
swap(array_2d[0], array_A);
swap(array_2d[1], array_B);
1
61 / 28 / 24
Регистрация: 28.09.2017
Сообщений: 399
05.05.2018, 11:40
mat_for_c, это работает? Первый раз вижу такое применение свапу
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
05.05.2018, 11:47
Цитата Сообщение от pavel2210057 Посмотреть сообщение
это работает?
ideone.com
0
61 / 28 / 24
Регистрация: 28.09.2017
Сообщений: 399
05.05.2018, 11:53
mat_for_c, неплохо, буду использовать в дальнейшем.
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
05.05.2018, 11:56
Цитата Сообщение от pavel2210057 Посмотреть сообщение
неплохо
это чтобы копирования меньше делать.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
05.05.2018, 18:42
Так ещё можно.
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
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    const int n = 5;
    int a[n], b[n], **c;
for(int i = 0 ; i < n ; ++i)
    {
        a[i] = i ;
        b[i] = i* i ;
    }
 
c = new int * [2] ; 
c[0] = a ;
c[1] = b ;
for(int i = 0 ; i < 2 ; ++i)
    {
        for(int j = 0 ; j < n ; ++j)
            {
                cout << c[i][j] << ' ' ;
            }
        cout << '\n' ;
    }
 
cout<<endl;
system("pause");
return 0;
}
При чём, не важно исходные массивы на стеке или это пара указателей на выделенную память. Но если они разного размера, то получится зубчатый массив и нужно где-то хранить ращмеры (для второго случая). Тогда, нужен либо сопряженный массив размеров, или делать обёртку. То есть, вектор векторов побеждает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2018, 18:42
Помогаю со студенческими работами здесь

Объединить два одномерных массива и преобразовать вновь полученный массив в двумерный
даны два одномерных массива.Объединить их и преобразовать вновь полученный массив в двумерный

Заданы два одномерных массива.Объединить их в один массив, включив второй массив между K и (K+1) элементами первого
Последняя на сегодня... Заданы два одномерных массива: массив А размера M и массив В размера N. Объединить их в один массив, включив...

Объединить два одномерных массива в один, включив второй массив между k-м и (k+1)-м элементами первого
Помогите составить программу. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один...

Даны два отсортированных одномерных массива, объединить их в один, тоже отсортированный
Даны два отсортированных одномерных массива, объединить их в один, тоже отсортированный. Помогите пожалуйста с решением!!!Очень...

Два двумерных массива объединить в один двумерный
Даны два двумерных массива LL; PER; Нужно их объединить в один Mas чтобы порядок чисел сохранился


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru