Tom993
1

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

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

Всем привет! Помогите с решением задачи: заданы две последовательности вещественных чисел, в которых числа идут в порядке невозрастания. Требуется образовать из них новую последовательность, в которой числа идут в порядке невозрастания.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2013, 16:22
Ответы с готовыми решениями:

Образовать последовательность, в которой числа следуют в порядке невозрастания
Заданы две последовательности вещественных чисел, в которых числа следуют в порядке невозрастания,...

Из данных двух массивов образовать третий массив
Из данных двух массивов образуется третий массив: сначала элементы первого массива, в конце...

Из двух массивов вещественных чисел образовать один массив.
Из двух массивов вещественных чисел образовать один массив. Каждый элемент результирующего массива...

Из двух массивов вещественных чисел образовать один массив
Из двух массивов вещественных чисел образовать один массив.Каждый элемент результирующего массива...

1
281 / 280 / 83
Регистрация: 03.02.2013
Сообщений: 807
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;
так будет православно
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2013, 18:58

Из двух массивов A и B из 10 случайных чисел меньше 20 сформировать третий
Привет форумчане! Прошу помочь мне в написании задач:) 1. Из двух массивов A и B из 10 случайных...

Найти номера элементов двух заданных массивов меньше заданного числа и из них образовать новый массив
Заданы 2 массива X(x1, x2, ..., xn) и Y(y1, y2, ..., yn). Найти номера элементов массивов, для...

Отобрать одинаковые числа из двух массивов и записать их в третий массив
Суть программами: у нас есть два массива заполнение рандомом из них нужно отобрать одинаковые числа...

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


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

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

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