Поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы - Pascal ABC
Формулировка задачи:
Дана задача:
Написать программу для решения следующей задачи. В двумерном массиве, состоящем из целочисленных элементов, поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы.
Смог сделать все условия,но вот поменять местами числа не могу.
Добавьте,пожалуйста,в мой код смену местами или исправьте,если что-то не так.
Решение задачи: «Поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы»
textual
Листинг программы
uses Crt; const high = 20; low = -10; n = 2; k = 4; type massiv = array [1..n, 1..k] of integer; var A : massiv; Procedure In_Mas(var m:massiv; phight, plow : integer); var i, j : byte; Begin for i:=1 to n do for j:=1 to k do m[i,j]:=plow+Random(phight-plow+1); End; Procedure Out_Mas(const m:massiv); var i, j : byte; Begin for i:=1 to n do begin for j:=1 to k do Write(m[i,j]:4); WriteLn; end; End; Procedure Sort(var m:massiv); var i, j, key, x : byte; temp, max : integer; Begin for i:=1 to n do begin key:=0; for j:=1 to k do begin if ( (odd(m[i,j])) and (key=0) ) then begin key:=1; max:=m[i,j]; x:=j; end; if ( (odd(m[i,j])) and (key=1) ) then if (m[i,j]>max) then begin max:=m[i,j]; x:=j; end; end; if ( (m[i,k]>0) and (m[i,k]<>m[i,x]) ) then begin temp:=m[i,x]; m[i,x]:=m[i,k]; m[i,k]:=temp; end; end; End; BEGIN ClrScr; Randomize; In_Mas(A, high, low); WriteLn('Исходный массив:'); Out_Mas(A); Sort(A); WriteLn; WriteLn('Новый массив:'); Out_Mas(A); END.
Объяснение кода листинга программы
- В процедуре In_Mas создается массив A и заполняется случайными числами от plow до phight.
- В процедуре Out_Mas числа в каждой строке массива A записываются в консоль.
- В процедуре Sort массив A сортируется по возрастанию нечетных чисел и по убыванию положительных чисел.
- Переменные i, j, key, x используются для сравнения чисел в массиве A и обмена наибольшего нечетного числа и последнего положительного числа.
- Переменная temp используется для временного хранения наибольшего нечетного числа.
- Переменные high и low задают границы диапазона случайных чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д