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

Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b - C++

Восстановить пароль Регистрация
 
mmd
13 / 13 / 1
Регистрация: 17.05.2012
Сообщений: 80
25.11.2012, 12:47     Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b #1
C++ (Qt)
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>
using namespace std;
 
int main()
{
    int *a;
    int size,b,l,r;
    cin >> size;
    a=new int[size];
    for(int i=0;i<size;++i){cin>>a[i];}
    cin >> b;
    l=0;
    r=size;
    while(l!=r)
    {
        if(a[l+1]<=b)
        {
            l+=1;
        }
        else if(a[r]>=b)
        {
            r-=1;
        }
        else
        {
            int t;
            t=a[l+1];
            a[l+1]=a[r];
            a[r]=t;
            l+=1;
            r-=1;
        }
    }
    for(int i=0;i<size;++i){cout << a[i] <<" ";}
    return 0;
}
дан массив и число b, надо переставить числа в массиве таким образом что бы слева от некоторой границы стояли числа меньшие или равные b, а справа от границы большие или равные b

что не так в коде? или в алгоритме
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 12:47     Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b
Посмотрите здесь:

В матрице M x N переставить строки таким образом, чтобы... C++
Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Преобразовать массив таким образом, чтобы элементы, равные нулю располагались после остальных. C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
C++ Переставить числа в массиве таким образом, чтобы сначала шли элементы меньше a[b], затем равные a[b], и потом большие
C++ Как в данной программе сделать так чтобы все генерируемые числа стояли по возрастанию или по убыванию
C++ Переставить числа в последовательности , что бы сначала шли числа равные первому члену, затем равные второму и тд

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
25.11.2012, 13:10     Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b #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
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
 
int main()
{
    vector<int> mass;
    int size,b,element;
    cin>>size;
    for(int i=0; i<size; i++) 
    {
        cin>>element;
        mass.push_back(element);
    }
    cin>>b;
    mass.push_back(b);
    sort(mass.begin(), mass.end());
    for(vector<int>::iterator cur=mass.begin();cur!=mass.end();cur++)
    {
            cout<<*cur;
    }
    getchar();
    getchar();
    return 0;
}
кстати в твоем коде вообще ничего мне не понятно, особенно с переменными буквами:-D
Yandex
Объявления
25.11.2012, 13:10     Переставить числа в массиве таким образом что бы слева от границы стояли числа меньшие или равные b
Ответ Создать тему
Опции темы

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