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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
Mut1late
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 8
06.07.2011, 11:09     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #1
Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена.

Может кто-то помочь ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2011, 11:09     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена.
Посмотрите здесь:

C++ Упорядочить столбцы матрицы по не возрастанию значений наименьших элементов столбца
Отсортировать диагонали матрицы,расположенные выше главной, по убыванию элементов, а диагонали матрицы, расположенные ниже главной, по возрастанию C++
Упорядочить элементы на главной диагонали по возрастанию C++
C++ Упорядочить строки матрицы по возрастанию их первых элементов
написать прогу в Visual Studio 2010 C++ Упорядочить строки матрицы m * n в порядке возрастания элементов в главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.07.2011, 11:24     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #2
а как должен выглядеть результат?
типо, если матрица

3 7 8 6
4 2 3 4
1 7 8 1
0 5 3 9

что на выходе будет?
Mut1late
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 8
06.07.2011, 11:28  [ТС]     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #3
По этой матрице на выходе должно получится
0 5 3 9
1 7 8 1
3 7 8 6
4 2 3 4
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.07.2011, 11:29     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #4
во! а тогда причем тут диагональ, если сортировка по первым элементам строки?)
Mut1late
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 8
06.07.2011, 11:40  [ТС]     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #5
прости, я не правильно написал, на выходе должна получится диагональ по возрастанию, я уточнил, я думал просто что нужно упорядочить строки по возрастанию исходной матрицы..

Добавлено через 3 минуты
1 7 8 1
4 2 3 4
3 7 8 6
0 5 3 9
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.07.2011, 12:00     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #6
ну и в чем проблема-то? диагональные элементы имеют индекс [i][i], вот и сортируйте их как обычный массив
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2011, 12:50     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена.
Еще ссылки по теме:

C++ Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки
Упорядочить строки матрицы по возрастанию значений их наибольших элементов C++
C++ Упорядочить строки матрицы по возрастанию их первых элементов

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

Или воспользуйтесь поиском по форуму:
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.07.2011, 12:50     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <time.h>
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
    srand( time(0) );
    int N;
    cout << "Enter number of elements:" <<endl;
    cin >> N;
    int counter = 0;
    int **mat;
    mat = new int* [ N ];
    for ( int i = 0; i < N; i ++ )
    {
        mat[i] = new int [ N ];
        for ( int j = 0; j < N; j ++ )
        {
            mat[i][j] = rand() % 50;
        }
    }
 
    cout << "Base matrix:" << endl;
    for ( int i = 0; i < N; i ++ )
    {
        for ( int j = 0; j < N; j ++ )
            cout << mat[i][j] << "\t";
        cout << endl;
    }
 
 
    bool flag = true;
    while ( flag && counter < 20)
    {
        flag = false;
        counter ++;
        for ( int i = 0; i < N - 1; i ++ )
            for ( int j = i +1 ; j < N; j ++ )
            {
                if (mat[i][i] > mat [j][j] )
                    for ( int k = 0; k < N; k ++)
                    {
                        flag = true;
                        int tmp = mat[i][k];
                        mat[i][k] = mat[j][k];
                        mat[j][k] = tmp;
                    }
            
            }
 
    }
 
 
    if ( counter < 20 ) {
    cout << endl;
    for ( int i = 0; i < N; i ++ )
    {
        for ( int j = 0; j < N; j++ )
            cout << mat[i][j] << "\t";
        cout << endl;
    }
    }
    else cout << "Programm cant sort the matrix" << endl;
    
 
 
 
    for ( int i = 0; i < N; i ++ )
        delete [] mat[i];
 
    system("pause");
    return 0;
    }
все оказалось значительно труднее чем на первый взгляд
Yandex
Объявления
06.07.2011, 12:50     Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена.
Ответ Создать тему
Опции темы

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