Предмет: Информатика,
автор: bubnowden
Отсортировать массив по возрастанию последней цифры по строкам. Паскаль
Аноним:
Нельзя массив отсортировать "по строкам". Можно или по одной конкретной строке, или отсортировать отдельно каждую строку массива.
Ответы
Автор ответа:
0
const n=5;
var a:array[1..n,1..n] of integer;
i,j,v,l:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(30);
write(a[i,j]:4)
end;
writeln
end;
writeln;
for l:=n-1 downto 1 do
for i:=1 to l do
if a[i,n] > a[i+1,n] then
for j:=1 to n do
begin
v:=a[i,j];
a[i,j]:=a[i+1,j];
a[i+1,j]:=v
end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln
end;
readln
end.
var a:array[1..n,1..n] of integer;
i,j,v,l:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(30);
write(a[i,j]:4)
end;
writeln
end;
writeln;
for l:=n-1 downto 1 do
for i:=1 to l do
if a[i,n] > a[i+1,n] then
for j:=1 to n do
begin
v:=a[i,j];
a[i,j]:=a[i+1,j];
a[i+1,j]:=v
end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln
end;
readln
end.
29 1 11 28 4
1 15 0 4 27
2 15 28 16 5
19 25 10 2 19
1 0 12 9 1
29 1 11 28 4
2 15 28 16 5
19 25 10 2 19
1 15 0 4 27
18 8 28 12 8
15 6 9 16 22
21 17 6 27 25
3 24 17 18 22
18 8 28 12 8
21 21 25 12 19
15 6 9 16 22
3 24 17 18 22
21 17 6 27 25
Автор ответа:
0
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(m,n,-99,99);
a.Println(4); Writeln(4*n*'-');
for var i:=0 to m-1 do
a.SetRow(i,a.Row(i).OrderBy(t->Abs(t mod 10)).ToArray);
Writeln('*** Полученный массив ***'); a.Println(4)
end.
Пример
Количество строк и столбцов в массиве: 5 8
*** Исходный массив ***
-53 -41 -74 23 90 -4 48 -78
-68 82 45 82 -54 -53 -63 80
66 40 -72 -15 79 -95 16 98
-52 -76 37 10 -9 -87 -12 30
-82 -58 43 -17 58 27 -85 96
--------------------------------
*** Полученный массив ***
90 -41 -53 23 -74 -4 48 -78
80 82 82 -53 -63 -54 45 -68
40 -72 -15 -95 66 16 98 79
10 30 -52 -12 -76 37 -87 -9
-82 43 -85 96 -17 27 -58 58
Замечание. В связи с некорректно поставленным вопросом принято решение сортировать каждую строку массива независимо от прочих по возрастанию последней цифры.
Внимание! Если программа не работает, обновите версию!
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(m,n,-99,99);
a.Println(4); Writeln(4*n*'-');
for var i:=0 to m-1 do
a.SetRow(i,a.Row(i).OrderBy(t->Abs(t mod 10)).ToArray);
Writeln('*** Полученный массив ***'); a.Println(4)
end.
Пример
Количество строк и столбцов в массиве: 5 8
*** Исходный массив ***
-53 -41 -74 23 90 -4 48 -78
-68 82 45 82 -54 -53 -63 80
66 40 -72 -15 79 -95 16 98
-52 -76 37 10 -9 -87 -12 30
-82 -58 43 -17 58 27 -85 96
--------------------------------
*** Полученный массив ***
90 -41 -53 23 -74 -4 48 -78
80 82 82 -53 -63 -54 45 -68
40 -72 -15 -95 66 16 98 79
10 30 -52 -12 -76 37 -87 -9
-82 43 -85 96 -17 27 -58 58
Замечание. В связи с некорректно поставленным вопросом принято решение сортировать каждую строку массива независимо от прочих по возрастанию последней цифры.
Похожие вопросы
Предмет: Физика,
автор: bodzukankarina
Предмет: Українська мова,
автор: maksimpaskovskij30
Предмет: Математика,
автор: lizalvova07
Предмет: Алгебра,
автор: sharanovaliya
Предмет: Математика,
автор: Аноним