Двумерный массив, поменять местами макс и мин элемент - Pascal ABC
Формулировка задачи:
Дан массив B(n*m).Элементы массива ввести в программе.Поменять местами максимальный и минимальный элемент
двумерн массив
Написал на паскале.нет, не приняли, сказали сделать проще
Решение задачи: «Двумерный массив, поменять местами макс и мин элемент»
textual
Листинг программы
var a:array of array of integer; n,m:integer; begin n:=ReadInteger('Введите количество строк: '); m:=ReadInteger('Введите количество столбцов:'); SetLength(a,n); for var i:=0 to n-1 do SetLength(A[i],m); println('Введите элементы матрицы'); for var i:=0 to n-1 do for var j:=0 to m-1 do begin write('[',i+1,'][',j+1,']: '); A[i,j]:=ReadInteger() end; println('Исходная матрица'); for var i:=0 to n-1 do begin for var j:=0 to m-1 do begin write(A[i,j]:5); end; writeln; end; var matrix_min:=A[0][0]; var matrix_max:=A[0][0]; var index_i_max,index_j_max,index_i_min,index_j_min:byte; for var i:=0 to n-1 do for var j:=0 to m-1 do begin if (matrix_min>A[i,j]) then begin matrix_min:=A[i,j]; index_i_min:=i; index_j_min:=j; end; if (A[i,j]>matrix_max) then begin matrix_max:=A[i,j]; index_i_max:=i; index_j_max:=j; end; end; writeln('Максимальный элемент матрицы - ',matrix_max); writeln('Его индекс - [',index_i_max+1,'][',index_j_max+1,']'); writeln('Минимальный элемент матрицы - ',matrix_min); writeln('Его индекс - [',index_i_min+1,'][',index_j_min+1,']'); var temp:=A[index_i_min,index_j_min]; A[index_i_min,index_j_min]:= A[index_i_max,index_j_max]; A[index_i_max,index_j_max]:=temp; println('Результирующая матрица'); for var i:=0 to n-1 do begin for var j:=0 to m-1 do begin write(A[i,j]:5); end; writeln; end; end.
Объяснение кода листинга программы
- Создается двумерный массив
a
типаarray of array of integer
. - Задаются значения переменных
n
иm
, которые представляют количество строк и столбцов матрицы соответственно. - Выделяются необходимые памяти для строк матрицы.
- Читаются элементы матрицы из стандартного ввода.
- Инициализируются переменные
matrix_min
иmatrix_max
как первые элементы матрицы. - Инициализируются переменные
index_i_min
иindex_j_min
как индексы первых минимального и максимального элементов. - Происходит цикл, который проверяет каждый элемент матрицы и обновляет
matrix_min
иmatrix_max
, если текущий элемент меньшеmatrix_min
или большеmatrix_max
. - После завершения цикла, выводится максимальное значение
matrix_max
и его индексы. - Затем выводится минимальное значение
matrix_min
и его индексы. - Далее происходит обмен элементов
matrix_min
иmatrix_max
. - Завершается программа.