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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
#1

Слияние двух массивов - C++

14.12.2013, 22:01. Просмотров 781. Ответов 7
Метки нет (Все метки)

Всем привет. Возникла проблема с задачей. Даны два массива одинакоого размера. Нужно создать 3 массив который будет хранить элементы первого и второго массива. Проблема в том что первый массив у меня передается в 3 массив, а все элементы 2 массива почему то равны первому элементу(тоесть счетчик j не инкрементируется)вот ф-ция которая должна соединить 2 массива
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
void merge(int arr[],int arr1[],int arr2[],int n)
{
    for(int i(0);i<n;i++)
        arr[i]=arr1[i];
    for(int i(n);i<2*n;i++)
    {
        for(int j=0;j<n;j++)//j не инкрементируется
        {
            arr[i]=arr2[j];
            break;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 22:01     Слияние двух массивов
Посмотрите здесь:

Слияние двух динамических массивов… - C++
Приветствую Вас!:) Задача такая: Даны два массива: A и B (числовые), упорядоченные по неубыванию. Слить их в один упорядоченный...

Слияние из двух массивов в один общий - C++
Требуется соединить два массива в один есть сложность что они считаны с файла... помогите объединить два массива в один и вывести его на...

Слияние двух отсортированых массивов в один - C++
задание: Задано два массива. Массив А состоит из N элементов и отсортированный по увеличению . Массив В состоит из N элементов и...

Слияние двух массивов, решение с помощью указателей - C++
помогите,пожалуйста,решить! Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B путем их...

Слияние двух массивов в отсортированный по не убыванию массив - C++
Даны два массива. Массив А состоит из N элементов, массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать...

Слияние двух массивов, заполненных случайными числами, в третий - C++
Доброго времени суток,подскажите,возможно кто то знает как решить задачу ниже..у самого ничего не получается.. Заранее Большое Спасибо! ...

Провести слияние двух массивов по возрастанию, создавая третий массив - C++
Провести слияние двух массивов по возрастанию, создавая третий массив. Помогите пожалуйста:(

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
14.12.2013, 22:19     Слияние двух массивов #2
Hrollo, вот, как отработает ваша программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
arr[ n ] = arr2[ 0 ];
arr[ n ] = arr2[ 1 ];
arr[ n ] = arr2[ 2 ];
arr[ n ] = arr2[ 3 ];
....
arr[ n ] = arr2[ n - 1 ];
 
arr[ n + 1 ] = arr2[ 0 ];
arr[ n + 1 ] = arr2[ 1 ];
....
arr[ n + 1 ] = arr2[ n - 1 ];
....
arr[ 2 * n - 1 ] = arr2[ n - 1 ];
katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
14.12.2013, 22:29     Слияние двух массивов #3
Если n - длина массивов arr1[] и arr2[] и все они у Вас заданы глобально...
И длина arr[] равна 2n...
C++
1
2
3
4
5
6
7
8
9
10
11
void merge(int arr[],int arr1[],int arr2[],int n)
{
for (int x = 0; x<=n; x++)
{
arr[x] = arr1[x];
};
for (int x = n+1; x <= 2*n; x++)
{
arr[x] = arr2[x];
};
}
Как-то так!
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
14.12.2013, 22:49  [ТС]     Слияние двух массивов #4
такой вариант я уже пробовал и он к сожалению не работает
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
14.12.2013, 22:55     Слияние двух массивов #5
Hrollo,
C++
1
2
3
4
5
6
7
8
9
10
11
....
for ( int i ( 0 ); i < n; i++ )
{
    arr[ i ] = arr1[ i ];
}
 
for ( int i ( n ), int j ( 0 ); ( i < n * 2 ) && ( j < n ); i++, j++ )
{
    arr[ i ] = arr2[ j ];
}
....
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
14.12.2013, 23:01  [ТС]     Слияние двух массивов #6
Спасибо помогло. Если не трудно можете ответить еще на один вопрос(что бы не создавать новую тему). Сортировку слиянием можно было применить в данном случае или она предназначена только для одного массива?
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
14.12.2013, 23:10     Слияние двух массивов #7
Hrollo, можно. Попробуйте так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int arr1[ 5 ] = {/*ваши_значения*/};
    int arr2[ 5 ] = {/*ваши_значения*/};
    int arr[ 10 ];
 
    merge( arr1, arr1 + 5, arr2, arr2 + 5, arr );
 
    ....
    return 0
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 23:16     Слияние двух массивов
Еще ссылки по теме:

Слияние массивов - C++
Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B путем их слияния так, чтобы сначала...

Слияние массивов - C++
Получить массив С(k), упорядоченный по возрастанию, путем слияния массивов A(n) и B(m), упорядоченных перед этим по возрастанию, где k = n...

Слияние массивов - C++
Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по...

Слияние массивов - C++
я новичек в программировании. Помогите пожалуйста решить слудеющию задачу на С++. Заданы три упорядоченных по возрастанию массива f,...

Слияние массивов на с++ - C++
Добродень всем.задача такая:массив структур размера N(в моем случае 100).разбить на ленты.т.о получается 10 лент по 10 элементов в каждой...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,734
14.12.2013, 23:16     Слияние двух массивов #8
все делается в один цикл
C++
1
2
3
4
5
for(int i=0;i<n;i++)
 {
   arr3[i]=arr1[i];
   arr3[i+n]=arr2[i];
}
Yandex
Объявления
14.12.2013, 23:16     Слияние двух массивов
Ответ Создать тему
Опции темы

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