С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

Все совершённые числа из двух массивов переписать в третий массив и найти четыре наименьших элемента - C++
Человек не может в C++. Заданы массивы целых чисел X(n) и Y(k). Все совершённые числа из этих массивов переписать в массив Z. В массиве Z...

Элементы массивов a и b отсортировать в порядке возрастания. Образовать из этих массивов "c" из M+N элементов - C++
1.даны массивы a и b. элементы массивов a и b отсортировать в порядке возрастания.образовать из этих массивов "c" из M+N элементов....

Образовать из двух убывающих массивов возрастающий - C++
Помогите пожалуйста с задачей. Дана массивы a и b. Элементы массивов a и b отсортированы в порядке убывания. Образовать из этих массивов...

Ввести два вектора целых чисел и образовать третий вектор с их общих элементов - C++
Ввести два вектора целых чисел и образовать третий вектор с их общих элементов (без повторений наченное выбранных элементов). Смофромавий...

1
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 18:58
Привет! Вот еще темы с ответами:

Объединение двух массивов в третий - C++
Как это можно сделать?

Из двух массивов сформировать третий - C++
помогите решить задачу, плиз!!!! из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим образом:...

Перенести записи с двух массивов в третий - C++
Помогите пожалйста))) Очень нужно) Можна идею подсказать как сделать задание, а то я не совсем понимаю как его делать. Задание: ...

Как из двух массивов создать третий? - C++
Допустим дан массив А и B, как создать массив С???


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

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

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