Поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы - Pascal ABC

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

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

Дана задача: Написать программу для решения следующей задачи. В двумерном массиве, состоящем из целочисленных элементов, поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы. Смог сделать все условия,но вот поменять местами числа не могу. Добавьте,пожалуйста,в мой код смену местами или исправьте,если что-то не так.
Листинг программы
  1. Var a:array[1..100,1..100] of integer; i,j,n,m,max,last:integer;t:integer;
  2. begin
  3. write ('Введите количество строк: ');
  4. read(n);
  5. writeln;
  6. write ('Введите количество элементов в строке: ');
  7. read(m);
  8. writeln('Введите массив: ');
  9. for i:=1 to n do begin
  10. for j:=1 to m do begin
  11. write(' a[',i,',',j,']=');
  12. read(a[i,j]);
  13. end;
  14. end;
  15. for i := 1 to M do begin
  16. for j := 1 to N do
  17. write (a[i,j]:5);
  18. writeln
  19. end;
  20. for i:=1 to n do begin
  21. max:=a[i,1];
  22. for j:=2 to m do begin
  23. if (a[i,j] mod 2) <> 0 then
  24. if (max<a[i,j]) then
  25. max:=a[i,j];
  26. end;
  27. write(max,' ');
  28. end;
  29. writeln;
  30. for i:=1 to n do begin
  31. last:=a[i,1];
  32. for j:=2 to m do begin
  33. if (last<a[i,j]) then
  34. last:=a[i,j];
  35. end;
  36. write(a[i,j],' ');
  37. end;
  38. end.

Решение задачи: «Поменять местами в каждой строке наибольший нечетный по значению и последний положительный элементы»

textual
Листинг программы
  1. uses  Crt;
  2. const high = 20;
  3.       low  = -10;
  4.       n    = 2;
  5.       k    = 4;
  6. type  massiv = array [1..n, 1..k] of integer;
  7. var   A : massiv;
  8.  
  9. Procedure In_Mas(var m:massiv; phight, plow : integer);
  10.           var i, j : byte;
  11.           Begin
  12.                for i:=1 to n do
  13.                    for j:=1 to k do
  14.                        m[i,j]:=plow+Random(phight-plow+1);
  15.           End;
  16.  
  17. Procedure Out_Mas(const m:massiv);
  18.           var i, j : byte;
  19.           Begin
  20.                for i:=1 to n do
  21.                begin
  22.                     for j:=1 to k do
  23.                         Write(m[i,j]:4);
  24.                     WriteLn;
  25.                end;
  26.           End;
  27.  
  28. Procedure Sort(var m:massiv);
  29.           var i, j, key, x : byte;
  30.               temp, max    : integer;
  31.           Begin
  32.                for i:=1 to n do
  33.                begin
  34.                     key:=0;
  35.                     for j:=1 to k do
  36.                     begin
  37.                          if ( (odd(m[i,j])) and (key=0) ) then
  38.                          begin
  39.                               key:=1;
  40.                               max:=m[i,j];
  41.                               x:=j;
  42.                          end;
  43.                          if ( (odd(m[i,j])) and (key=1) ) then
  44.                             if (m[i,j]>max) then
  45.                             begin
  46.                                  max:=m[i,j];
  47.                                  x:=j;
  48.                             end;
  49.                     end;
  50.                     if ( (m[i,k]>0) and (m[i,k]<>m[i,x]) ) then
  51.                     begin
  52.                          temp:=m[i,x];
  53.                          m[i,x]:=m[i,k];
  54.                          m[i,k]:=temp;
  55.                     end;
  56.                end;
  57.           End;
  58.  
  59. BEGIN
  60.      ClrScr;
  61.      Randomize;
  62.      In_Mas(A, high, low);
  63.      WriteLn('Исходный массив:');
  64.      Out_Mas(A);
  65.      Sort(A);
  66.      WriteLn;
  67.      WriteLn('Новый массив:');
  68.      Out_Mas(A);
  69. END.

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

  1. В процедуре In_Mas создается массив A и заполняется случайными числами от plow до phight.
  2. В процедуре Out_Mas числа в каждой строке массива A записываются в консоль.
  3. В процедуре Sort массив A сортируется по возрастанию нечетных чисел и по убыванию положительных чисел.
  4. Переменные i, j, key, x используются для сравнения чисел в массиве A и обмена наибольшего нечетного числа и последнего положительного числа.
  5. Переменная temp используется для временного хранения наибольшего нечетного числа.
  6. Переменные high и low задают границы диапазона случайных чисел.

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы