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

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

Войти
Регистрация
Восстановить пароль
 
Aleksey777
Сообщений: n/a
#1

Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных - C++

15.12.2011, 21:23. Просмотров 971. Ответов 3
Метки нет (Все метки)

Напишите пожалуста программку, метод сортировки ваще не понимаю.

Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2011, 21:23     Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Посмотрите здесь:

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Преобразовать массив таким образом, чтобы элементы, равные нулю располагались после остальных. C++
C++ Преобразовать массив таким образом чтобы сначала располагались все элементы равные нулю а потом остальные
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
C++ Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
C++ Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы
C++ Превратить массив таким образом, чтобы все элементы, равные нулю и единице, располагались после всех остальных
C++ Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1 C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались перед всеми остальными
Переделать массив так, чтоб все элементы, равные нулю и единице располагались после всех остальных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5927 / 3364 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
15.12.2011, 21:34     Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных #2
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
39
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <ctime>
 
using namespace std;
 
class TransformArray{
    int _maxRandom;
    int _value;
public:
    TransformArray(int maxRandom, int value):
        _maxRandom(maxRandom),
        _value(value) {
        srand(time(NULL));
    }
    int operator() () {
        return rand() % _maxRandom;
    }
    bool operator ()(int item) {
        return item != _value;
    }
};
 
int main()
{
    cout << "Size: ";
    int size;
    cin >> size;
    vector<int> vec(size);
    TransformArray ta(10, 0);
    generate(vec.begin(), vec.end(), ta);
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    stable_partition(vec.begin(), vec.end(), ta);
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    return EXIT_SUCCESS;
}
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
15.12.2011, 21:48     Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных #3
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
#include <iostream>
#define m_swap(type, a, b)  { type t = a; a = b; b = t; }
 
void move_tail(int val, int* arr, int size) {
  for(int i = 0; i < size; i++) {
        if(arr[i] == val) {
             for(int k = i; k < size - 1; k++)
                 m_swap(int, arr[k], arr[k + 1]);
             i--;
             --size;
        }
   }
}
 
int main(void) {
   int arr[] = { 0, 0, 30, 45, 0, 0, 20, 5, 7, 0, 11 };
   int size  = sizeof(arr) / sizeof(arr[0]);
   
   move_tail(0, arr, size);
   for(int i = 0; i < size; i++)
          std::cout << arr[i] << "  ";
   std::cout.put('\n');
   return 0;
}
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
15.12.2011, 22:58     Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <random>
#include <array>
#include <ctime>
 
int main()
{
    std::array<int, 20> a;
 
    std::generate(a.begin(), a.end(),
                  std::bind(std::uniform_int_distribution<>(-5, 5), std::mt19937(std::time(nullptr))));
 
    std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    std::stable_partition(a.begin(), a.end(), [](int i) { return i == 0; });
 
    std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
}
Yandex
Объявления
15.12.2011, 22:58     Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Ответ Создать тему
Опции темы

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