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

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

Войти
Регистрация
Восстановить пароль
 
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
#1

Отсортировать масив - C++

06.06.2012, 13:01. Просмотров 386. Ответов 6
Метки нет (Все метки)

Отсортировать элементы массива по возрастанию только положительные элементы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 13:01     Отсортировать масив
Посмотрите здесь:

Нужно отсортировать одномерный масив - C++
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а затем -...

Отсортировать масив методом пузырьковой сортировки - C++
1). Создать 2 массива по 5 элементов. Заполнить их случайными числами и отсортировать первый в возрастающем порядке, а второй в убывающем. ...

Создать структуру, используя потоки заполнить масив структурами и отсортировать - C++
Помогите, никак не могу закончить програму. Как через поток записать существующие (записаные в файле данные) в масив? #include <...

Масив - C++
B заданной последовательности различных чисел a(1), a(2), … a (2n+1). Найти элемент a(m) такой, что множества L = {a(k): a(k) < a(m)} и...

Масив D[m][n] - C++
В масиве D действительных чисел найти суму елементов суму индексов каких парна. Помогите пожалуйста. В течение 30 мин срочно надо.

масив - C++
всем привет! очень нужна ваша помощь. 1) нужно заполнить двухмерную матрицу нулями над главной диагональю. 2) найти номер первого рядка...

масив - C++
господа програмисты как записать в масив все числа введённые с клавиатуры и показать на экране

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 13:14     Отсортировать масив #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
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int n;
    cout<<"Vvedite razmer massiva: ";cin>>n;
    cout<<"Massiv: "<<endl;
    int* mas=new int[n];
    srand((unsigned) time(NULL));
    for (int i=0;i<n;i++)
    {
        mas[i] = rand() % 100;
        cout<<mas[i]<<" ";
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n-1;j++)
        if(mas[j]>mas[j+1])
        {
            int temp=mas[j];
            mas[j]=mas[j+1];
            mas[j+1]=temp;
        }
    }
    cout<<"\nNew Massiv: "<<endl;
    for (int i=0;i<n;i++)
    {
        cout<<mas[i]<<" ";
    }
    getch();
    return 0;
}
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
06.06.2012, 13:24  [ТС]     Отсортировать масив #3
Канечно клас но она нреработает
Код
Vvedite razmer massiva: 10
Massiv:
-46 -30 18 45 8 -8 -18 -20 49 -47
New Massiv:
49 45 18 8 -8 -18 -20 -30 -46 -47
Отрицательные елементы сортировать ненадо!
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 13:37     Отсортировать масив #4
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
Канечно клас но она нреработает
Код
Vvedite razmer massiva: 10
Massiv:
-46 -30 18 45 8 -8 -18 -20 49 -47
New Massiv:
49 45 18 8 -8 -18 -20 -30 -46 -47
Отрицательные елементы сортировать ненадо!
Тогда, так:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int n,min=-100,max=100,pos=0,pos1=0;
    cout<<"Vvedite razmer massiva: ";cin>>n;
    cout<<"Massiv: "<<endl;
    int* mas=new int[n],*bufmas=new int[n],*bufmas1=new int[n];
    srand((unsigned) time(NULL));
    for (int i=0;i<n;i++)
    {
        mas[i] = rand() % (max - min + 1) + min;
        cout<<mas[i]<<" ";
        if(mas[i]<0)
        {
            bufmas[pos]=mas[i];
            pos++;
        }
        else if(mas[i]>=0)
        {
            bufmas1[pos1]=mas[i];
            pos1++;
        }
    }
 
    for(int i=0;i<pos1;i++)
    {
        for(int j=0;j<pos1-1;j++)
        if(bufmas1[j]>bufmas1[j+1])
        {
            int temp=bufmas1[j];
            bufmas1[j]=bufmas1[j+1];
            bufmas1[j+1]=temp;
        }
    }
    for(int i=0;i<pos;i++)
        mas[i]=bufmas[i];
    for(int i=pos,j=0;i<n;i++,j++)
        mas[i]=bufmas1[j];
    cout<<"\nNew Massiv: "<<endl;
    for (int i=0;i<n;i++)
    {
        cout<<mas[i]<<" ";
    }
    delete[] bufmas1;
    delete[] bufmas;
    delete[] mas;
    getch();
    return 0;
}
Выводим сначала все отрицательные элементы, а затем отсортированные положительные.
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
06.06.2012, 14:42  [ТС]     Отсортировать масив #5
Сбасибо!!!

Добавлено через 1 час 1 минуту
Сри но всернавно неправильно!
Код
Vvedite razmer massiva: 20
Massiv:
59 11 64 -48 -45 74 0 -90 -1 34 44 -43 -34 -69 -83 37 -43 25 6 74
New Massiv:
-48 -45 -90 -1 -43 -34 -69 -83 -43 0 6 11 25 34 37 44 59 64 74 74
А надо чтоб цыфры ставали нарпежние места!
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 16:44     Отсортировать масив #6
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
Сбасибо!!!

Добавлено через 1 час 1 минуту
Сри но всернавно неправильно!
Код
Vvedite razmer massiva: 20
Massiv:
59 11 64 -48 -45 74 0 -90 -1 34 44 -43 -34 -69 -83 37 -43 25 6 74
New Massiv:
-48 -45 -90 -1 -43 -34 -69 -83 -43 0 6 11 25 34 37 44 59 64 74 74
А надо чтоб цыфры ставали нарпежние места!
Тогда так:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int n,min=-100,max=100,pos=0;
    cout<<"Vvedite razmer massiva: ";cin>>n;
    cout<<"Massiv: "<<endl;
    int* mas=new int[n],*bufmas=new int[n];
    srand((unsigned) time(NULL));
    for (int i=0;i<n;i++)
    {
        mas[i] = rand() % (max - min + 1) + min;
        cout<<mas[i]<<" ";
        if(mas[i]>=0)
        {
            bufmas[pos]=mas[i];
            pos++;
        }
    }
 
    for(int i=0;i<pos;i++)
    {
        for(int j=0;j<pos-1;j++)
        if(bufmas[j]>bufmas[j+1])
        {
            int temp=bufmas[j];
            bufmas[j]=bufmas[j+1];
            bufmas[j+1]=temp;
        }
    }
    int count=0;
    for(int i=0;i<n;i++)
    {
        if(mas[i]>=0)
        {
            mas[i]=bufmas[count];
            count++;
        }
    }
 
    cout<<"\nNew Massiv: "<<endl;
    for (int i=0;i<n;i++)
    {
        cout<<mas[i]<<" ";
    }
    delete[] bufmas;
    delete[] mas;
    getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 17:10     Отсортировать масив
Еще ссылки по теме:

масив - C++
необходимо проиницилизувати массив который состоит из н- элементов (какие вводе пользователь в любом порядке после этого выводится...

Масив - C++
Здраствуйте у меня вопрос по массиву. Вот например мы вводим масив ну так скажем mas масив целочисельный как найти вот номер парных...

Масив - C++
Дана матрица N*M.Найти сумму елментов черной области.(Обозначена звездочками) |*****| | *** | | * | | *** | |*****|

Масив - C++
Нужно зделать ёлку из двухмерного масива A!Через for+if Начинаем верхушка 1 символ и внизу по 1 добавляем полючаеться что-то на подобие...

C++, одномерный масив - C++
В одномерном массиве, состоящем из n действительных элементов, найдите: 1) количество элементов массива равных 0 2) сумму элементов...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
06.06.2012, 17:10     Отсортировать масив #7
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
#include <vector>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(-10, 20);
    const std::size_t M = 20;
    int A[M];
    std::vector<int> vind, v; 
    std::generate(A, A + M, [&uid, &gen] {return uid(gen); } );
    for (std::size_t i=0; i < M; i++)
    {
        std::cout<< A[i]<< " ";
        if(A[i] >= 0)
        {
            vind.push_back(i);
            v.push_back(A[i]);
        }
    }
    std::sort(v.begin(), v.end());
    auto it = v.begin();
    std::for_each(vind.begin(), vind.end(), [&it, &A](const int i) {A[i] = *it++; } );   
    std::cout<< std::endl;    
    std::copy(A, A + M, std::ostream_iterator<int> (std::cout, " ") );
    return 0;
}
http://liveworkspace.org/code/d2bc4d...1595f305930967
Yandex
Объявления
06.06.2012, 17:10     Отсортировать масив
Ответ Создать тему
Опции темы

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