Ну что ж, разобьем задачу на несколько этапов.
1 Этап
Опишем закон, по которому будем искать индексы нужных нам элементов.
Главная диагональ это у нас вот эта:
|x| | | | |
| |x| | | |
| | |x| | |
| | | |x| |
| | | | |x|
Нам нужны все элементы, выше нее:
|x|O|O|O|O|
| |x|O|O|O|
| | |x|O|O|
| | | |x|O|
| | | | |x|
Их индексы описываются таким законом: [i,j], где j > i, а j принадлежит промежутку [0; n) (i и j строка и столбец соответственно, кол-во строк/столбцов).
Пол решения у нас есть, мы знаем и можем находить нужные нам элементы по их индексу.
2 Этап
Отсортируем нужные нам элементы построчно с этими элементами
Воспользуемся классическим академическим методом сортировки, а именно методом пузырька. Суть метода в том, что мы сравниваем текущий элемент массива с последующими и меняем их местами, если текущий элемент больше последующего. Т.е. чем больше элемент, тем дальше он будет находится от начала массива. Алгоритм проще некуда, гуглится легко.
3 Этап
Определим размер выходного массива
Он равен сумме всем возможным комбинаций индексов закона описанного в 1 этапе.
Т.е. sum(n - i) где n - константа равная кол-ву столбцов, i - переменная, изменяющаяся [1, n). Т.е. для 5 столбцов получится такой вот результат:
(5-1) + (5 - 2) + (5 - 3) + (5 - 4) = 10
Т.е. алгоритм ясен и очень даже прост.
Осталось заполнить все эти элементы значениями из матрицы. Для этого достаточно по закону из первого этапа пробежаться по всем элементам и складывать их последовательно в результирующий массив.
Задача для 9 класса средней школы решена, вуаля!
Описания программного кода, методов и др. оставляю вам, к тому же все уже здесь есть.