![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Hazy |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дана матрица m на n. Найти максимум в каждой строке. Отсортировать эти максимумы по убыванию в матрице. Указать, какое количество максимумов находится в каждом столбце.
Проблемка возникла при сортировке максимумов, помогите пожалуйста. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, так тебе же нужно заводить 2 массива, и в одном хранить сами макс. элементы, а в другом - их индексы... И потом - вот так:
Var
arrMax, { это - сами макс элементы }
arrIndex, { это - те позиции в строке, на которых они находятся }
: Array[1 .. m] of integer;
... { заполняешь arrMax и arrIndex }
{ сортируешь "пузырьком" по убыванию }
For i := 1 To m Do
For j := m DownTo i Do
If arrMax[Pred(j)] < arrMax[j] Then Begin
T := arrMax[Pred(j)]; arrMax[Pred(j)] := arrMax[j]; arrMax[j] := T;
End;
{ и переносишь отсортированные элементы на их старые места: }
For i := 1 To m Do
matrix[i, arrIndex[i]] := arrMax[i];
Вот и все... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 14:01 |