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

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

Войти
Регистрация
Восстановить пароль
 
Tom993
Сообщений: n/a
#1

Из двух массивов чисел образовать третий, и сортировать числа в порядке невозрастания - C++

03.02.2013, 16:22. Просмотров 423. Ответов 1
Метки нет (Все метки)

Всем привет! Помогите с решением задачи: заданы две последовательности вещественных чисел, в которых числа идут в порядке невозрастания. Требуется образовать из них новую последовательность, в которой числа идут в порядке невозрастания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 16:22     Из двух массивов чисел образовать третий, и сортировать числа в порядке невозрастания
Посмотрите здесь:

C++ Как из двух массивов создать третий?
Объединение двух массивов в третий C++
C++ Из данных двух массивов образовать третий массив
C++ Из двух массивов сформировать третий
C++ Перенести записи с двух массивов в третий
Ввести два вектора целых чисел и образовать третий вектор с их общих элементов C++
Элементы массивов a и b отсортировать в порядке возрастания. Образовать из этих массивов "c" из M+N элементов C++
Отобрать одинаковые числа из двух массивов и записать их в третий массив C++
Слияние двух массивов, заполненных случайными числами, в третий C++
На основе двух массивов сформировать третий C++
C++ Из двух массивов, упорядоченных по возрастанию, получить третий
C++ Образовать из двух убывающих массивов возрастающий

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
03.02.2013, 18:58     Из двух массивов чисел образовать третий, и сортировать числа в порядке невозрастания #2
если не изобретать велосипедов и юзать 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
#include <iostream>
#include <vector>
#include <algorithm> 
 
int main()
{
    using namespace std;
    const int a[] = {1,23,41,3,5,12};
    const int b[] = {3,2,123,22,4};
    
    int a_elements = sizeof(a)/sizeof(*a);
    int b_elements = sizeof(b)/sizeof(*b); 
    
    vector<int> A (a_elements);
    copy(a,a+a_elements,A.begin());
    copy(b,b+b_elements,back_inserter(A));
    sort(A.rbegin(),A.rend());
    
        
    for (vector<int>::iterator iter = A.begin(); iter!=A.end(); ++iter)
      cout << ' ' << *iter;
    cout<<endl;
    
    return 0;
}
Добавлено через 6 минут
p.s. ктстати сперва не заметил, что числа в массивах уже остортированны по Вашему условию, тогда можно и без sort() обойтись, просто пихая их по порядку из обоих массивов, наверное так будет правильнее

Добавлено через 17 минут
вот, исправил, чтобы не пользоваться sort() в предположении, что оба массива входны отсортированны

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
#include <iostream>
#include <vector>
 
int main()
{
    using namespace std;
    const int a[] = {111,23,21,5,4,2};
    const int b[] = {300,222,12,7,4};
    
    int a_elements = sizeof(a)/sizeof(*a);
    int b_elements = sizeof(b)/sizeof(*b); 
    
    vector<int> A;
    int i=0; 
    int j=0;
    
    while (i!=(a_elements) || j!=(b_elements))
    {
        if ((j==b_elements)||(a[i]>=b[j]) && (i<a_elements))
        {
            A.push_back(a[i]);
            ++i;
        }
        else if (j<b_elements)
        {
            A.push_back(b[j]);
            ++j;
        }
    }
        
    for (vector<int>::iterator iter = A.begin(); iter!=A.end(); ++iter)
      cout << ' ' << *iter;
    cout<<endl;
    
    return 0;
}
Добавлено через 38 минут
я согрешил)
замените строчки
C++
1
2
3
4
5
6
    int a_elements = sizeof(a)/sizeof(*a);
    int b_elements = sizeof(b)/sizeof(*b); 
    
    vector<int> A;
    int i=0; 
    int j=0;
на
C++
1
2
3
4
5
6
    size_t a_elements = sizeof(a)/sizeof(*a);
    size_t b_elements = sizeof(b)/sizeof(*b); 
    
    vector<int> A;
    size_t i=0; 
    size_t j=0;
так будет православно
Yandex
Объявления
03.02.2013, 18:58     Из двух массивов чисел образовать третий, и сортировать числа в порядке невозрастания
Ответ Создать тему
Опции темы

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