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

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

Восстановить пароль Регистрация
 
Megusta8
 Аватар для Megusta8
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 17
07.12.2012, 11:47     Упорядочить строки матрицы в порядке возрастания элементов главной диагонали #1
Упорядочить строки матрицы m * n в порядке возрастания элементов в главной диагонали. Матрица вводится и выводится в главной программе. Составление выполнить с помощью функции.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 11:47     Упорядочить строки матрицы в порядке возрастания элементов главной диагонали
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
07.12.2012, 14:35     Упорядочить строки матрицы в порядке возрастания элементов главной диагонали #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
да, необычная для меня задачка. В отличие от сортировок всяких массивов в которых элементы можно всегда менять местами, не нарушая их значение, при попытке поменять местами строки в матрице, элементы на диагонали изменятся... мда.

Добавлено через 3 минуты
предлагаю такой алгоритм. 0я строка - выбирается та, у которой 0й элемент минимален.
Следующей ищется строка, у которой 1й элемент больше A[0][0], но при этом минимальный из возможных альтернативных вариантов и.т.д.

Добавлено через 22 минуты
Попробуй так, но, мне кажется, с некоторыми матрицами работать не будет
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
#include <iostream>
#include <cstdlib>
/*ïðåäëГ*ГЈГ*Гѕ ГІГ*êîé Г*ëãîðèòì. 0Гї ñòðîêГ* - âûáèðГ*ГҐГІГ±Гї ГІГ*, Гі êîòîðîé 0Г© ýëåìåГ*ГІ ìèГ*ГЁГ¬Г*ëåГ*.
Ñëåäóþùåé ГЁГ№ГҐГІГ±Гї ñòðîêГ*, Гі êîòîðîé 1Г© ýëåìåГ*ГІ áîëüøå A[0][0], Г*Г® ïðè ýòîì ìèГ*ГЁГ¬Г*ëüГ*ûé ГЁГ§ âîçìîæГ*ûõ Г*ëüòåðГ*Г*ГІГЁГўГ*ûõ ГўГ*ðèГ*Г*òîâ ГЁ.ГІ.Г¤.*/
using namespace std;
const int size=4;
int main()
{
   int i, j;
   int data[size][size]={
       {4, 4, 6, 1},
       {0, 5, 2, 7},
       {1, 5, 3, 8},
       {9, 7, 6, 0},
       };
   int* a[size];
   int* temp;
   int min_id, pre;
   for (i=0; i<size; i++)
     a[i]=&(data[i][0]);
     
     
     
   min_id=0; pre=0;
   for (j=0; j<size; j++){
       
     for(i=1; i<size; i++)
        if ( (a[i][j]>pre)&&(a[i][j]<a[min_id][j])) min_id=i;
     temp=a[j];
     a[j]=a[min_id];
     a[min_id]=temp;
     pre=a[j][j];
        }
   for (i=0; i<size; i++){
   for (j=0; j<size; j++)
     cout<<a[i][j]<<", ";
     cout<<endl;
     }
    system("pause"); 
   return 0;
}
Megusta8
 Аватар для Megusta8
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 17
07.12.2012, 17:08  [ТС]     Упорядочить строки матрицы в порядке возрастания элементов главной диагонали #3
Размер массива задатаёт пользователь, я это делал через "маллок", а так по идее там большенство полученых матриц будут без решения.
Yandex
Объявления
07.12.2012, 17:08     Упорядочить строки матрицы в порядке возрастания элементов главной диагонали
Ответ Создать тему
Опции темы

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