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

Массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Операции с элементами массива http://www.cyberforum.ru/cpp-beginners/thread319025.html
1) одномерном массиве состоящем из n вещественных эл. вычислить -сумму отрицательных эл. масива -произведение эл. массива расположенных между мах и мин эл. -упорядочить эл. по возрастанию...
C++ ооп Нада книгу по ооп, такую что бы было все разжевано максимально. Так, что бы я за минимум времени и усилий разобрался. http://www.cyberforum.ru/cpp-beginners/thread319013.html
научите студента! C++
Здравствуйте! Очень хочу научится програмировать, подскажите с чего начать!!!( я полный нуб)
C++ Поиск экстремумов функции методом квадратичной интерполяции/экстраполяции
решите пожалуйста задачку: найти экстремумы функции 0.1*pow(x,3)-2*pow(x,2)+10*x методом квадратичной интерполяции - экстраполяции прошу очень срочно на уровне первого курса с помощью циклов функций...
C++ когда delay-я не хватает... http://www.cyberforum.ru/cpp-beginners/thread318957.html
Пацаны, проблемка. Пишу программу на С++ и нужна мне задержка во времени, но такая, чтобы во время этой задержки пользователь мог вводить данные. Ну или переформулировав: как отложить выполнение...
C++ Подскажите значения строчек в программе шифрования данных #include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 18 int key; void crypt(char *s, char *t) { while ( *s != '\0') подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1967 / 1460 / 120
Регистрация: 29.05.2011
Сообщений: 3,020
14.06.2011, 03:42
Ну раз вопрос не в разделе новичков, да и средства не конкретизированы, то я бы создал подходящий предикат и воспользовался бы алгоритмом std::stable_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
37
38
#include <iostream>
#include <algorithm>
#include <iterator>
 
class PlusMinusZero
{
public:
    bool operator() (int lft, int rht)
    {
        if (lft > 0)
            return (rht <= 0);
// Если открыть следующие 2 строчки, то нули уедут в конец,
// но по заданию вроде этого не требуется
//        else if (lft < 0)
//            return (rht == 0);
        return false;
    }
};
 
using namespace std;
 
int main()
{
    int array[] = { 1, -3, 15, 0, -1, -2, -1, 5, 0, 1 };
    int const N = sizeof(array)/sizeof(array[0]);
 
    cout << "Before sorting:" << endl;
    copy(array, array+N, ostream_iterator<int>(cout, " "));
    cout << endl;
 
    stable_sort(array, array+N, PlusMinusZero() );
 
    cout << "After sorting:" << endl;
    copy(array, array+N, ostream_iterator<int>(cout, " "));
    cout << endl;
 
    return 0;
}
Результат:
Код
$ ./a.out     
Before sorting:
1 -3 15 0 -1 -2 -1 5 0 1 
After sorting:
1 15 5 1 -3 0 -1 -2 -1 0
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru