Поменять местами строки двумерного массива - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, есть код, который находит максимальные и минимальные значения массива в каждой строке:

Решение задачи: «Поменять местами строки двумерного массива»

textual
Листинг программы
uses crt;
var a:array[1..6,1..6] of integer;
    i,n,j,r,max,min,max1,min1,imx,imn,k:integer;
begin
clrscr;
repeat
writeln('Введите размер матрцы от 2 до 10 n=');
readln(n);
until n in [2..6];
clrscr;
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100);
    write(a[i,j]:3);
   end;
  writeln;
 end;
for i:=1 to n do
 begin
  max:=a[i,1];
  min:=a[i,1];
  for j:=1 to n do
  if a[i,j]>max then max:=a[i,j]
  else if a[i,j]<min then min:=a[i,j];
  if i=1 then
   begin
    max1:=max;
    imx:=1;
    min1:=min;
    imn:=i;
   end
  else
   begin
    if max>max1 then
     begin
      max1:=max;
      imx:=i;
     end;
    if min<min1 then
     begin
      min1:=min;
      imn:=i;
     end;
   end;
  writeln(i,'-макс=',max,' мин=',min);
 end;
writeln('Максимальный в матрице=',max1,' в строке ',imx);
writeln('Минимальный в матрице=',min1,' в строке ',imn);
if imx=imn then write('Максимальный и минимальный в одной строке, обмена нет')
else
 begin
  for i:=1 to n do
   begin
    k:=a[imx,i];
    a[imx,i]:=a[imn,i];
    a[imn,i]:=k;
   end;
  writeln('Обмен строк ',imx,' и ',imn);
  for i:=1 to n do
   begin
    for j:=1 to n do
    write(a[i,j]:3);
    writeln;
   end;
 end;
readln
end.

Объяснение кода листинга программы

  1. Используется модуль CRT (клавиатура/монитор) для ввода/вывода данных.
  2. Введены переменные:
    • a: двумерный массив (6x6) целых чисел.
    • i, n, j, r, max, min, max1, min1, imx, imn, k: целочисленные переменные для управления циклом и обмена значениями.
  3. Установлены начальные значения переменных:
    • n: размер матрицы (от 2 до 10).
    • a[i,j]: случайное число от 0 до 99.
  4. Выводится исходная матрица (6x6).
  5. Находится максимальное и минимальное значение в каждой строке матрицы (переменные max и min).
  6. Находится индекс строки с максимальным значением (переменная imx) и индекс строки с минимальным значением (переменная imn).
  7. Если максимальное и минимальное значение находятся в одной строке, то обмен не требуется.
  8. В противном случае происходит обмен значениями между строками imx и imn.
  9. Выводится сообщение об обмене строк.
  10. Выводится измененная матрица.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы