![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
![]()
Нужно отсортировать двумерный массив по возрастанию сумм строк. Один вариант есть, вот он.
Код:
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
И работает ? По моему еще одного цикла не хватает.
.... Вычисление суммы строки у Вас делается по нескольку раз для одной и той-же строки. Лучше сразу вычислить суммы строк и сохранить их в отдельный массив. Далее сортируем этот массив, а когда будут перестановки элементов, меняем еще и строки массива. Алгоритм сортировки лучше взять другой - метод выбора: Ищем в массиве минимальный элемент, меняем его с первым. Среди оставшихся ищем минимальный, меняем со вторым и т.д. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Программа в принципе неправильно составлена, она по-моему не должна работать.
Для сортировки вообще не нужен максимум, т. при сортировке обменом он нигде не участвует. Не нужны также никакие массивы. Я делаю так: 1. создаю матрицу, только ее параметры не принимаю константами, т. к. размерв матрицы временно будут меняться. 2.считаю сумму в строках и ставлю ее в конце каждой строки. 3.Сортируя последний столбец, параллельно сортирую все строки. 4.Вывожу матрицу в нормальных размерах, без сумм. На нерусском это выглядит так: Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
![]()
Программа которая мной представлена работает. И выдает правильный результат. Спасибо за мысли. Теперь понял как надо сделать.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 17.11.2010
Сообщений: 1
|
![]()
Вы , ребят,извините , но по-моему вы немного тупите
![]() Вам было бы не удобнее прописать после uses crt; const n=5 ; m=6 ;{к примеру а потом писать var a: array [1..n,1..m] of integer; и так далее ??? ![]() У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор Последний раз редактировалось mihali4; 17.11.2010 в 17:16. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 20.11.2010
Сообщений: 221
|
![]()
а по моему проще методом пузырька толко для матрицы!
считаем сумму первой строки и второй!сравиниваем потом вторую и третью и так далее! |
![]() |
![]() |
![]() |
#8 |
Регистрация: 28.10.2011
Сообщений: 3
|
![]()
var
mass:array[0..2,0..2]of integer; i,j,x,y,b,z:integer; buf:boolean; begin {ввод матрицы} randomize; for i := 0 to length(mass) - 1 do for j := 0 to length(mass) - 1 do mass[i,j]:=random(20)-11; for i := 0 to length(mass) - 1 do begin for j := 0 to length(mass) - 1 do begin write(mass[i,j]:4,' '); end; writeln; end; writeln; {сортировка матрицы} for i := 0 to length(mass) - 1 do begin for j := 0 to length(mass) - 1 do begin b:=mass[i,j]; for x := 0 to length(mass) - 1 do begin for y := 0 to length(mass) - 1 do begin if b < mass[x,y] then begin z:=b; b:=mass[x,y]; mass[i,j]:=b; mass[x,y]:=z; end; end; end; end; end; {вывод матрицы} for i := 0 to length(mass) - 1 do begin for j := 0 to length(mass) - 1 do begin write(mass[i,j]:4,' '); end; writeln; end; readln; readln; end. |
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Еще один умник... Читай хоть условие..
Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод двумерного массива | Kocapb | Общие вопросы C/C++ | 4 | 11.10.2012 11:05 |
Сортировка двумерного числового массива «спиралью» | vicvtor | Помощь студентам | 2 | 06.07.2011 09:10 |
Поворот двумерного массива | Guest_ | Общие вопросы C/C++ | 6 | 24.12.2007 23:02 |
сортировка двумерного массива | cornholio | Помощь студентам | 1 | 27.11.2007 23:36 |
Сортировка двумерного массива произвольной длины. Visual Basic | Pekc | Помощь студентам | 0 | 25.11.2007 19:30 |