В настоящее время я работаю над программой на C, в которую я ввожу размеры матрицы и элементы матрицы, которая представлена в памяти как динамический c 2D массив. Программа позже находит максимум каждой строки. Затем он находит минимальный максимум из максимумов всех строк.
Например, если у нас есть матрица 3x3:
1 2 3
7 8 9
4 5 6
максимальные значения 3, 9, 6 и минимальные максимальные значения 3. Если минимальный максимальный положительный, программа должна продолжить порядок расположения строк, чтобы они следовали в порядке возрастания максимальных значений, поэтому конечный результат должен быть:
1 2 3
4 5 6
7 8 9
Я создал массив Dynami c, который содержит значения максимумов, за которыми следует строка, в которой они были найдены, например: 3 0 6 1 9 2. Но я понятия не имею, что мне делать дальше. Мне пришло в голову, если я каким-то образом выясню способ использования этого массива с индексами, которые я сделал, что у меня возникнет проблема, если у меня будут одинаковые максимальные значения в разных строках, например, если матрица была:
1 2 3
4 5 6
7 8 9
1 1 6
мой массив будет 3 0 6 1 9 2 6 3. Тогда мне понадобится дополнительный массив для позиций, и он станет похож на момента создания. Может быть, я мог бы использовать какой-нибудь флаг, чтобы увидеть, сталкивался ли я уже с тем же номером, но обычно я, как алгоритмически, не знаю, что делать. Мне пришло в голову создать массив и передать ему значения, но это потратило бы дополнительное пространство ... Если бы я нашел способ найти порядок, в котором я хотел бы печатать строки, понадобилась бы мне функция адресации, отличная от той, которую я уже есть? (то есть в двойном для l oop, для текущего элемента - * (matrix + i * numOfCols + currentCol)) Я был бы признателен, если бы кто-нибудь сказал мне, правильно ли я думаю о решении проблемы, и дал бы мне несколько советов по этой проблеме. Заранее спасибо!