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

Сортировка - C++

Восстановить пароль Регистрация
 
Rokky
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 14
17.11.2013, 21:48     Сортировка #1
Ести двумерный массив 7х7. Отсортировать 3-й столбец массива по возрастанию. Не могу никак понять, как задать именно конкретный столбец? Например, сортируем пузырьком..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i=0; i<coll; i++)
{
for (int j=0; j<row; j++)
 
    {
        if(matr[i][j]<matr[i+1][j])
        {
            s=matr[i][j];
            matr[i][j]=matr[i+1][j];
            matr[i+1][j]=s;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 21:48     Сортировка
Посмотрите здесь:

C++ сортировка
C++ Сортировка.
C++ сортировка
C++ сортировка
Сортировка C++
C++ Сортировка
Сортировка С++ C++
Сортировка C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dj_Death87
8 / 8 / 2
Регистрация: 14.01.2013
Сообщений: 36
18.11.2013, 00:20     Сортировка #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
41
42
43
44
45
46
47
#include <iostream>
#include <iomanip>
#include <ctime>
 
using std::cout;
using std::endl;
using std::setw;
using std::cin;
 
int main()
{
    int mas[7][7];
    for (int i = 0; i < 7; i++)
    {
        cout<<endl;
        for (int j = 0; j < 7; j++)
        {
            mas[i][j]=rand()%10;
            cout<<setw(3)<<mas[i][j];
        }
    }
    for (int i = 0; i < 7; i++)
    {
        for (int j = 1; j < 7; j++)
        {
            if (mas[j][3]<mas[j-1][3])
            {
                int s(mas[j][3]);
                mas[j][3]=mas[j-1][3];
                mas[j-1][3]=s;
            }
 
        }
    }
    cout<<endl<<endl;
        for (int i = 0; i < 7; i++)
    {
        cout<<endl;
        for (int j = 0; j < 7; j++)
        {
            cout<<setw(3)<<mas[i][j];
        }
    }
 
    cin.get();
    return 0;
}
Добавлено через 1 час 22 минуты
Только я перепутал, отсортировал 4-й столбец... но суть понятна
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
18.11.2013, 00:32     Сортировка #3
C++
1
2
3
4
5
6
7
8
 k - проходы;
for(k=0; k<n;++k){
for(i=1;i<n;++i) 
            if (mas[i][2]<mas[i-1][2])
            {
               обмен
            }
}
Добавлено через 3 минуты
Цитата Сообщение от Dj_Death87 Посмотреть сообщение
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
#include <iostream>
#include <iomanip>
#include <ctime>
 
using std::cout;
using std::endl;
using std::setw;
using std::cin;
 
int main()
{
    int mas[7][7];
    for (int i = 0; i < 7; i++)
    {
        cout<<endl;
        for (int j = 0; j < 7; j++)
        {
            mas[i][j]=rand()%10;
            cout<<setw(3)<<mas[i][j];
        }
    }
    for (int i = 0; i < 7; i++)
    {
        for (int j = 1; j < 7; j++)
        {
            if (mas[j][3]<mas[j-1][3])
            {
                int s(mas[j][3]);
                mas[j][3]=mas[j-1][3];
                mas[j-1][3]=s;
            }
 
        }
    }
    cout<<endl<<endl;
        for (int i = 0; i < 7; i++)
    {
        cout<<endl;
        for (int j = 0; j < 7; j++)
        {
            cout<<setw(3)<<mas[i][j];
        }
    }
 
    cin.get();
    return 0;
}
Добавлено через 1 час 22 минуты
Только я перепутал, отсортировал 4-й столбец... но суть понятна
Вы вносите путаницу, если решили - j - столбец, то до конца, букв мало для переменных?
Yandex
Объявления
18.11.2013, 00:32     Сортировка
Ответ Создать тему
Опции темы

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