Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.12.2009
Сообщений: 23
1

Слияние массивов

20.03.2011, 18:42. Просмотров 1124. Ответов 3
Метки нет (Все метки)

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

Заданы три упорядоченных по возрастанию массива f[n], g[m], h[k]
Составить программу слияния этих массивов.

Если возможно, привидите пожалуйста листинг.
Заранее благодарю тех, кто откликнулся.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2011, 18:42
Ответы с готовыми решениями:

Слияние массивов
Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B...

Слияние массивов
Есть задача: Описать функцию, которая выполнит слияние двух массивов одинаковой длины в третьем...

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

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

3
Заблокирован
20.03.2011, 19:03 2
Вот решение для двух массивов А[N] и В[M] из которых формируется С[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
#include <iostream>
#define N 6
#define M 8
using namespace std;
 
int main()
{
        int A[]={1,3,16,22,31,128};
        int B[]={2,2,18,24,37,44,52,61};
        int C[N+M],i=0,j=0,k=0;
        while(k<N+M)
        {       if((A[i]<B[j] ||  j>=M) && i<N) 
                {       C[k]=A[i];      i++;}
                else
                {       C[k]=B[j];      j++;}
                k++;
        }
 
        for(k=0;k<N+M;k++)
                cout<<C[k]<<"  ";
 
        cin.get();
        return 0;
}
0
0 / 0 / 0
Регистрация: 27.12.2009
Сообщений: 23
20.03.2011, 19:51  [ТС] 3
Огромное спасибо
сягодня обязательно попробую
0
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
20.03.2011, 20:06 4
Можно попробовать реализовать с помощью библиотеки STL:

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>
#include <algorithm>
#include <iterator>
 
int main (void)
{
    const int SIZE=5;
    // fill
    int A [SIZE]={1,3,16,22,31};
    int B [SIZE]={2,2,18,24,37};
    int C [SIZE]={7,8,12,65,89};
    int TMP [SIZE*2];
    int REZ [SIZE*3];
    // output
    std::cout << "Start matrix A:\n";
    std::copy (A, A+SIZE, std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
    std::cout << "Start matrix B:\n";
    std::copy (B, B+SIZE, std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
    std::cout << "Start matrix C:\n";
    std::copy (C, C+SIZE, std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
    //
    std::merge (A, A+SIZE, B, B+SIZE, TMP);
    std::merge  (TMP, TMP+SIZE*2, C, C+SIZE, REZ);
    //output
    std::cout << "Rezult matrix:\n";
    std::copy (REZ, REZ+SIZE*3, std::ostream_iterator <int> (std::cout, " "));
 
    //exit
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2011, 20:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Слияние 2-х одномерных массивов
всем привет Даны два одномерных массива с произвольными НО упорядоченными по возрастанию...

Сортировка и слияние массивов
Товарищи, помогите пожалуйста разобраться с заданием. Буду очень благодарен.

Слияние трех массивов
Помогите пожалуйста написать небольшую программку. Даны три массива A, B, C Написать программу...


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

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

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