Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Patifonka
0 / 0 / 3
Регистрация: 21.06.2010
Сообщений: 13
1

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

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

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

Сортировка двухмерного массива
Здравствуйте, Нужно применить сортировку к текстовой базе данных. Поля базы...

Сортировка двухмерного массива
Помогите!!!Нужно отсортировать двухмерный массив с использованием указателя....

Сортировка двухмерного массива по i и j
Нужно написать алгоритм, который создавал бы массив чисел, при чем так, чтобы...

Сортировка строк двухмерного массива
Нужно написать функцию для сортировки двухмерного массива. Пользователь должен...

Сортировка двухмерного массива вставками
Доброго времени суток! Пытаюсь реализовать сортировку двухмерного массива...

10
Manjak
270 / 176 / 46
Регистрация: 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;
}
1
Sanu0074
58 / 58 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 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;
                }
         } 
}
0
Patifonka
0 / 0 / 3
Регистрация: 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>...а мой борланд ее не поддерживает..не могли бы вы подсказать другой путь реализации этой ф-ции?
0
cibertronic
256 / 143 / 17
Регистрация: 27.12.2009
Сообщений: 908
23.06.2010, 19:59 5
Цитата Сообщение от Patifonka Посмотреть сообщение
Borland C++
какой?
0
Patifonka
0 / 0 / 3
Регистрация: 21.06.2010
Сообщений: 13
23.06.2010, 20:00  [ТС] 6
Borland C++ 5.02
0
cibertronic
256 / 143 / 17
Регистрация: 27.12.2009
Сообщений: 908
23.06.2010, 20:01 7
в 6м без вопросов работает
0
Patifonka
0 / 0 / 3
Регистрация: 21.06.2010
Сообщений: 13
23.06.2010, 20:02  [ТС] 8
Ну установить его то не проблема....а задание то принимать будут именно этим
0
cibertronic
256 / 143 / 17
Регистрация: 27.12.2009
Сообщений: 908
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
то есть все цыфры нечет наверх, остальное вниз
0
Patifonka
0 / 0 / 3
Регистрация: 21.06.2010
Сообщений: 13
24.06.2010, 00:32  [ТС] 10
Неет как раз вначале четные,а потом нечетные..но вот код то как составить чтобы в борланде работало?
0
Manjak
270 / 176 / 46
Регистрация: 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 означает, что относительный порядок чисел должен сохраняться.
1
24.06.2010, 01:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2010, 01:16

Сортировка двухмерного динамического массива
Доброго времени суток. Столкнулся с проблемой при сортировке двухмерного...

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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