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

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

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

Сортировка двухмерного массива - C++

21.06.2010, 20:22. Просмотров 1012. Ответов 10
Метки нет (Все метки)

Дан двухмерный массив. Отсортировать столбики массива, поставив вначале четные элементы,а потом нечетные, не меняя при этом их порядок следования...
помогите пожалуйста!..не могу додуматься как это сделать
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2010, 20:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка двухмерного массива (C++):

Сортировка двухмерного массива по i и j - C++
Нужно написать алгоритм, который создавал бы массив чисел, при чем так, чтобы каждый последующий элемент (по i или по j) был меньше...

Сортировка двухмерного массива - C++
Помогите!!!Нужно отсортировать двухмерный массив с использованием указателя. #include<iostream> #include<stdlib.h> #include<time.h> ...

Сортировка двухмерного массива - C++
Здравствуйте, Нужно применить сортировку к текстовой базе данных. Поля базы только string. Я записываю БД в двумерный массив string. ...

Сортировка двухмерного массива вставками - C++
Доброго времени суток! Пытаюсь реализовать сортировку двухмерного массива вставками по характеристике Sum. Компилятор выдает ошибку в...

Сортировка двухмерного динамического массива - C++
Доброго времени суток. Столкнулся с проблемой при сортировке двухмерного динамического массива, а именно: первые y-1 элементы (у - число...

Сортировка первого столбца двухмерного массива. - C++
Необходимо отсортировать первый столбец двухмерного массива. Программа кажется это и делает, только почему-то неправильно. Укажите...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
22.06.2010, 21:39 #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
40
#include <iostream>
#include <algorithm>
#define DIMENSION 5
using namespace std; 
 
bool criterion(int& elem)
{
    return !(elem & 1);
}
 
int main()
{
    int **b;
    b = new int*[DIMENSION];
    for (int i = 0; i<DIMENSION; ++i)
    {
        b[i] = new int [DIMENSION];
        for (int j = 0; j < DIMENSION; ++j)
            b[i][j] = rand() % 10;
        stable_partition(b[i], b[i]+DIMENSION, criterion);
    }
    
    for (int i = 0; i<DIMENSION; ++i)
    {
        for (int j = 0; j < DIMENSION; ++j)
        {
            cout << b[j][i] << " ";
        }
        cout << endl;
    }
    
 
    for (int i = 0; i<DIMENSION; ++i)
    {
        delete [] b[i];
    }
    delete [] b;
    system("pause");
    return 0;
}
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
23.06.2010, 14:00 #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
25
26
27
28
#include <iostream>
using namespace std;
int main()
{
    const int row = 3, col = 2;
        int arr[row][col] = 
        {
                {1, 2},
                {3, -4},
                {5, -6}
        };
        for(int i = 0; i < row; ++i)
        {
                for(int j = 0; j < col; ++j)
                {
                    if(arr[i][j]<0)
                cout << arr[i][j] << endl;;
                }
        }
         for(int i = 0; i < row; ++i)
        {
                for(int j = 0; j < col; ++j)
                {
                    if(arr[i][j]>0)
                cout << arr[i][j]<< endl;
                }
         } 
}
Patifonka
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 13
23.06.2010, 19:45  [ТС] #4
Всем спасибо!Manjak а вы не могли бы еще объяснить следующие куски кода...
C++
1
2
3
4
5
6
7
8
9
using namespace std; 
 
bool criterion(int& elem)
{
    return !(elem & 1);
}
 
 
stable_partition(b[i], b[i]+DIMENSION, criterion);
а то я только учусь программировать в Borland C++ и может конешно во многом из-за уровня знаний не совсем понимаю эти строчки...и насколько я поняла stable_partition это какая-то функция из библиотеки <algorithm>...а мой борланд ее не поддерживает..не могли бы вы подсказать другой путь реализации этой ф-ции?
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
23.06.2010, 19:59 #5
Цитата Сообщение от Patifonka Посмотреть сообщение
Borland C++
какой?
Patifonka
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 13
23.06.2010, 20:00  [ТС] #6
Borland C++ 5.02
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
23.06.2010, 20:01 #7
в 6м без вопросов работает
Patifonka
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 13
23.06.2010, 20:02  [ТС] #8
Ну установить его то не проблема....а задание то принимать будут именно этим
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
23.06.2010, 20:36 #9
ссори...ша )

Добавлено через 4 минуты
должно получиться если
Код
1 2 3
4 5 6
7 8 9
то
Код
1 5 3
7 2 9
4 8 6
то есть все цыфры нечет наверх, остальное вниз
Patifonka
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 13
24.06.2010, 00:32  [ТС] #10
Неет как раз вначале четные,а потом нечетные..но вот код то как составить чтобы в борланде работало?
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
24.06.2010, 01:16 #11
Цитата Сообщение от Patifonka Посмотреть сообщение
C++
1
2
3
4
5
6
7
using namespace std; 
 
bool criterion(int& elem)
{
    return !(elem & 1);
}
stable_partition(b[i], b[i]+DIMENSION, criterion);
Первая строка значит что все имена которые я использовал в программе будут искаться в пространстве имен std.
Булевая функция определяет четное ли число (возвращает true в таком случае).
stable_partition(b[i], b[i]+DIMENSION, criterion); - вот эта функция выносит в начало промежутка ограниченного первым и вторым аргументом (работает до второго аргумента, но не включительно, тоесть [a;b) ) все элементы для которых функция в третьем аргументе вернет истину, в данном случае четные числа, приставка stable означает, что относительный порядок чисел должен сохраняться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2010, 01:16
Привет! Вот еще темы с ответами:

Сортировка двухмерного масива - C++
Отсортировать двухмерный масив целых чисел методом пузырьков. Заранее благодарна.

Из двухмерного массива в одномерный - C++
Всем привет.Передо мной предстала задача перевести двухмерный массив в одномерный. Вот пример : 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1...

Удаление двухмерного массива - C++
Доброго дня. Выделяем память под квадратную матрицу --&gt; заполняем --&gt; освобождаем занятую память . Следующий вопрос : при повторном...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.06.2010, 01:16
Ответ Создать тему
Опции темы

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