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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение max и min в матрице . и поменять их местами http://www.cyberforum.ru/cpp-beginners/thread778112.html
Доброго времени суток столкнулась с этой программой в лоб в лоб . И ни как не могу вывести матрицу с этими указателями, я в них запуталась , или пишу какой-то бред=( помогите разобраться с этой программой #include<stdlib.h> #include<conio.h> #include<stdio.h> void main() { clrscr(); randomize();
C++ Рекурсивное создание потока написал пример вызова. но только вот отрабатывает вся эта ерунда не совсем верно. нужно: создать 10 потоков и чтобы каждый из потоков в консоль с интервалом в секунду выводил свой псевдономер(псевдо - потому что номер 1-10). а у меня они все пишут одинаковый номер. #include <Windows.h> #include <stdio.h> #include <conio.h> bool Flag=true; http://www.cyberforum.ru/cpp-beginners/thread778101.html
C++ static_cast
Почему не работает static_cast<float>(n/m);? Как сделать чтобы он все же перевел это к типу float? #include <iostream> using namespace std; int main() { int n=7,m=3; cout<<(float)n/m<<endl<<static_cast<float>(n/m); system("pause>0");
C++ Дано: n,m, a[n] [m]. Написать функцию , которая вычисляет и печатает среднее арифметическое каждой строки матрицы
Дано: n,m, a . Написать функцию , которая вычисляет и печатает среднее арифметическое каждой строки матрицы.
C++ printf, множественные аргументы http://www.cyberforum.ru/cpp-beginners/thread778061.html
void MyPrint(const char *message, ...) { * * printf(message, ...); // не вытаскивая просто передать дальше } Как организовать это?
C++ VS2012, зарезервированное слово where В VS2012 слово "where" помечено как зарезервированное. В стандарте си++ если такое слово? подробнее

Показать сообщение отдельно
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
03.02.2013, 18:58     Из двух массивов чисел образовать третий, и сортировать числа в порядке невозрастания
если не изобретать велосипедов и юзать 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;
так будет православно
 
Текущее время: 00:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru