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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строка является отрывком кода на языке С. Вывести все содержащиеся в ней комментарии. http://www.cyberforum.ru/cpp-beginners/thread722631.html
Строка является отрывка кода из С. Вывести все содержащиеся в ней комментарии. Понятно, что //такие комментарии можно вывести через strchr а что делать с /*такими*/ ?
C++ Совместимость char и unsigned char Есть некие числа в виде unsigned char. Есть строка в виде массива char (которая потом сбрасывается в файл с помощью fputs). В программе происходит преобразование чисел в строки. При этом используются... http://www.cyberforum.ru/cpp-beginners/thread722614.html
Составление логического выражения C++
Составить логическое выражение, значение которого равно True, если высказывание истинно, и False, - если ложно. Сумма цифр четырехзначного натурального числа является однозначным числом.
C++ Минимальный массив из кв. матрицы
Создать одномерный массив из минимальных элементов каждой строки данной квадратной матрицы.
C++ расчёт значений переменных http://www.cyberforum.ru/cpp-beginners/thread722609.html
Здравствуйте!Возник вопрос касательно перерасчета переменных в цикле. Допустим, у нас есть код string mas; for(int i=0;i<mas.size();i++) Будет ли программа на каждой итерации цикла...
C++ Задание по С++(Вычеркнуть в данной строке каждую k-ю букву. ) Вычеркнуть в данной строке каждую k-ю букву. подробнее

Показать сообщение отдельно
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
07.12.2012, 14:35
да, необычная для меня задачка. В отличие от сортировок всяких массивов в которых элементы можно всегда менять местами, не нарушая их значение, при попытке поменять местами строки в матрице, элементы на диагонали изменятся... мда.

Добавлено через 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;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru