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

Объединение массивов - C++

Восстановить пароль Регистрация
 
Triathlet23
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 31
23.10.2013, 22:00     Объединение массивов #1
Здравствуйте. Подскажите, где ошибка. Есть два отсортированных массива. Их нужно объединить в один тоже отсортированный. У меня выводит весь конечный массив,кроме 2 последних элементов.
C++
1
2
3
4
5
6
7
 
    for(i=0,j=0,index=0;(i < n) && (j < n) ;index++) 
    {
        if(arr1[i] < arr2[j]) 
                  arr3[index]=arr1[i++]; 
    else arr3[index]=arr2[j++];
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 22:00     Объединение массивов
Посмотрите здесь:

Объединение и упорядочивание массивов C++
Объединение массивов! C++
Объединение массивов C++
C++ Объединение массивов
Объединение двух массивов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
23.10.2013, 23:11     Объединение массивов #2
прочитай функцию memcpy_s(), не нужно никаких циклов... или strcat().
Triathlet23
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 31
23.10.2013, 23:36  [ТС]     Объединение массивов #3
Цитата Сообщение от Евгений Буланов Посмотреть сообщение
прочитай функцию memcpy_s(), не нужно никаких циклов... или strcat().
Так у меня присутствуют повторяющиеся элементы
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
23.10.2013, 23:49     Объединение массивов #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
std::size_t i = 0, j = 0, index = 0;
 
while ((i < n) && (j < n)) {
   arr3[index++] = arr1[i] < arr2[j] ? arr1[i++] : arr2[j++];
}
 
// Вот этого не хватает, дописываем "остаток"
if (i < n) {
   std::copy(arr1 + i, arr1 + n, arr3 + index);
} else {
   std::copy(arr2 + j, arr2 + n, arr3 + index);
}
вообще есть merge
C++
1
std::merge(arr1, arr1 + n, arr2, arr2 + n, arr3);
Triathlet23
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 31
24.10.2013, 22:38  [ТС]     Объединение массивов #5
СПАСИБО ОГРОМНОЕ!!!
Yandex
Объявления
24.10.2013, 22:38     Объединение массивов
Ответ Создать тему
Опции темы

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