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

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

Восстановить пароль Регистрация
 
Patifonka
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 13
21.06.2010, 20:22     Сортировка двухмерного массива #1
Дан двухмерный массив. Отсортировать столбики массива, поставив вначале четные элементы,а потом нечетные, не меняя при этом их порядок следования...
помогите пожалуйста!..не могу додуматься как это сделать
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Manjak
 Аватар для Manjak
268 / 174 / 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
 Аватар для Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,186
Записей в блоге: 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
 Аватар для cibertronic
255 / 142 / 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
 Аватар для cibertronic
255 / 142 / 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
 Аватар для cibertronic
255 / 142 / 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
Неет как раз вначале четные,а потом нечетные..но вот код то как составить чтобы в борланде работало?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2010, 01:16     Сортировка двухмерного массива
Еще ссылки по теме:

Сортировка двухмерного массива по i и j C++
Удаление двухмерного массива C++
C++ Из двухмерного массива в одномерный

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

Или воспользуйтесь поиском по форуму:
Manjak
 Аватар для Manjak
268 / 174 / 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 означает, что относительный порядок чисел должен сохраняться.
Yandex
Объявления
24.06.2010, 01:16     Сортировка двухмерного массива
Ответ Создать тему
Опции темы

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