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

Объединить 2 массива в один, в котором все числа идут по убыванию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подключение glut http://www.cyberforum.ru/cpp-beginners/thread1204023.html
Всем привет, сегодня начал знакомство c++ и возникли проблемы с подключением библиотеки glut. Работаю в VS 2008. Прочел несколько туториалов по инициализации OpenGL в c++ и отчасти задуманное осуществить удалось, кроме подключения библиотеки glut. Пользовался данным туториалом, glut32.dll раскидал по положенным папкам, но подключаться противиться все равно. Как бороться с этим? Если надо, вот...
C++ Fstream и бинарные файлы вообщем вопрос такой.. как читать строки из бинарного файла, и как записывать в бинарный файл строки используя fstream, и можно ли прочитав из бинарного строки.. работать с ними как с обычными?? или есть свои нюансы тоже? http://www.cyberforum.ru/cpp-beginners/thread1204014.html
C++ Создание абстрактных типов данных
Продемонстрировать создание абстрактных типов данных и производных от них на примере класса "Фигура" и "Прямоугольник" и "Окружность". #include <cstdlib> #include <iostream> using namespace std; const double PI = 3.1415926;
C++ Помогите найти ошибку с printf
вот скажи, на что здесь ругаться: FILE *F=fopen("1_3.txt","w"); for(int i=0;i<1000;i++) {fprintf(F,"%d\n",1);}//<<-----------------------здесь ругается fclose(F);
C++ Вычитание массивов данных http://www.cyberforum.ru/cpp-beginners/thread1203983.html
Помогите пожалуйста! Задание такое: программа должна иметь 2 массива данных из 72 значений каждый. Из первого массива нужно вычесть второй и получить вывод на экран среднее число.
C++ Убрать массивы. Приближённое вычисление Вот исходник с массивами: #include <iostream> #include <math.h> #include <stdlib.h> #include <time.h> long double f(long double); using namespace std; подробнее

Показать сообщение отдельно
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
09.06.2014, 22:56     Объединить 2 массива в один, в котором все числа идут по убыванию
Привет всем. Мне нужно объединить 2 массива в один, в котором все числа идут по убыванию. Вот подробности задачи.

Текстовый файл merge.dat содержит четыре строки. В первой строке записано натуральное число N (1 ≤ N ≤ 100 000) — количество дуболомов в первой шеренге.

Вторая строка содержит N натуральных чисел, записанных через пробел. Числа идут в невозрастающем порядке. Каждое число лежит в диапазоне от 1 до 1 000 000 000.

В третьей строке записано натуральное число M (1 ≤ M ≤ 100 000) — количество дуболомов во второй шеренге.

Четвертая строка содержит M натуральных чисел, записанных через пробел. Числа идут в невозрастающем порядке. Каждое число лежит в диапазоне от 1 до 1 000 000 000.

Формат выходного файла merge.sol

Текстовый файл merge.sol должен содержать N+M чисел, идущих в невозрастающем порядке. Каждое число — это рост соответствующего дуболома из первой или из второй шеренги. Каждое число должно выводиться в отдельную строку.

У меня есть предположения, что раз числа идут в невозрастающем порядке, то 2 массива нужно сначала отсортировать по убыванию, а потом слить вместе процедурой слияния.
Я так понимаю, что для слияния нужно использовать этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template<class T> void Merge(T const *const A, int const nA,
                             T const *const B, int const nB,
                             T *const C)
{ //Выполнить слияние массива A, содержащего nA элементов,
  //  и массива B, содержащего nB элементов.
  //  Результат записать в массив C.
 
    int a(0), b(0); //Номера текущих элементов в массивах A и B
 
    while( a+b < nA+nB ) //Пока остались элементы в массивах
    {
        if( (b>=nB) || ( (a<nA) && (A[a]<=B[b]) ) )
        { //Копирую элемент из массива A
            C[a+b] = A[a];
            ++a;
        } else { //Копирую элемент из массива B
            C[a+b] = B[b];
            ++b;
        }
    }
}
Скажите, этот код подходит? Если да, то как изменить его, чтоб числа в массиве С шли по убыванию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru