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

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

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

Массив - C++

13.06.2011, 19:49. Просмотров 551. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите плиз!
Дан массив целых чисел, содержащий 10 элементов, записать в этот же массив сначала все положительные элементы, а затем отрицательные и нули, сохраняя порядок их следования.
Знает кто как это сделать??? Очень надо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2011, 19:49     Массив
Посмотрите здесь:

C++ вставить массив в массив по индексу
Многомерный массив и массив массивов C++
C++ Ссылка на массив и внутренний массив
C++ Скопировать массив в массив по условию
Из заданного массива C записать в массив А чётные положительные элементы, а в массив В нечётные отрицательные C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
 Аватар для grizlik78
1891 / 1423 / 104
Регистрация: 29.05.2011
Сообщений: 2,978
14.06.2011, 03:42     Массив #2
Ну раз вопрос не в разделе новичков, да и средства не конкретизированы, то я бы создал подходящий предикат и воспользовался бы алгоритмом 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
Yandex
Объявления
14.06.2011, 03:42     Массив
Ответ Создать тему
Опции темы

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