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

Массив - C++

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

C++ Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W
C++ с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. C++
C++ Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2)
Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. C++
C++ Массив: Переместить в массив Y все числа, дробная часть которых больше 5.
C++ Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным
Сжать массив, выбросив из него отрицательные элементы - массив становится пустым C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
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     Массив
Ответ Создать тему
Опции темы

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