В двумерном массиве по запросу поменять два заданных столбца или две строки? Пожалуйста))

В двумерном массиве по запросу поменять два заданных столбца или две строки? Пожалуйста))
Гость
Ответ(ы) на вопрос:
Гость
var a: array[1..4, 1..4] of integer; i, j, x, y, n: integer; s: string; begin for i:=1 to 4 do for j:=1 to 4 do read(a[i, j]); writeln('Введите "столбцы", чтобы поменять столбцы, или "строки", чтобы поменять строки'); readln(s); writeln('Введите номера столбцов/строк'); readln(x, y); if s='столбцы' then for i:=1 to 4 do begin n := a[i, x]; a[i, x] := a[i, y]; a[i, y] := n; end; if s='строки' then for i:=1 to 4 do begin n := a[x, i]; a[x, i] := a[y, i]; a[y, i] := n; end; for i:=1 to 4 do begin for j:=1 to 4 do write(a[i, j], ' '); writeln; end; end.
Гость
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin   var m,n:integer;   Write('Введите количество строк и столбцов массива: ');   Readln(m,n);   var a:=MatrixRandom(m,n,10,99);   for var i:=0 to m-1 do begin     for var j:=0 to n-1 do Print(a[i,j]);     Println     end;   var c:char;   Writeln('1- поменять местами строки, 2- столбцы: ');   Readln(c);   case c of   '1': begin     var r1,r2:integer;     Writeln('Введите пару номеров строк: '); Read(r1,r2);     if (r1<=m) and (r2<=m) and (r1<>r2) and (r1*r2>0) then begin       Dec(r1); Dec(r2);       for var j:=0 to n-1 do Swap(a[r1,j],a[r2,j]);         for var i:=0 to m-1 do begin           for var j:=0 to n-1 do Print(a[i,j]);           Println         end       end     else Writeln('Введены недопустимые номера строк')     end;   '2': begin     var c1,c2:integer;     Writeln('Введите пару номеров столбцов: '); Read(c1,c2);     if (c1<=n) and (c2<=n) and (c1<>c2) and (c1*c2>0) then begin       Dec(c1); Dec(c2);       for var i:=0 to m-1 do Swap(a[i,c1],a[i,c2]);       for var i:=0 to m-1 do begin           for var j:=0 to n-1 do Print(a[i,j]);           Println         end       end     else Writeln('Введены недопустимые номера столбцов')     end;   else Writeln('Массив не меняется')   end end. Тестовые решения: Введите количество строк и столбцов массива: 6 4 63 32 31 99 14 92 54 37 79 90 93 95 41 55 95 26 98 44 57 13 80 45 61 24 1- поменять местами строки, 2- столбцы: 1 Введите пару номеров строк: 2 5 63 32 31 99 98 44 57 13 79 90 93 95 41 55 95 26 14 92 54 37 80 45 61 24 Введите количество строк и столбцов массива: 3 5 47 17 78 15 37 35 73 60 31 91 13 17 92 95 88 1- поменять местами строки, 2- столбцы: 2 Введите пару номеров столбцов: 1 5 37 17 78 15 47 91 73 60 31 35 88 17 92 95 13 Введите количество строк и столбцов массива: 3 3 95 60 52 67 35 28 31 94 60 1- поменять местами строки, 2- столбцы: 3 Массив не меняется Введите количество строк и столбцов массива: 4 3 12 53 74 80 20 44 64 50 43 42 13 35 1- поменять местами строки, 2- столбцы: 1 Введите пару номеров строк: 4 7 Введены недопустимые номера строк
Не нашли ответ?
Ответить на вопрос
Похожие вопросы