В строках, где число четных элементов превышает число нечетных, нечетные элементы заменить максимумом матрицы - Turbo Pascal
Формулировка задачи:
Не пойму что не так сделал. Программа выводит не правильный результат. Прошу помочь с задачей.
Ввести матрицу А NxM, вывести ее. В строках, где число четных элементов превышает число нечетных, нечетные элементы заменить максимальным элементом всей матрицы.
Решение задачи: «В строках, где число четных элементов превышает число нечетных, нечетные элементы заменить максимумом матрицы»
textual
Листинг программы
for i:=1 to n do for j:=1 to m do if a[i,j]>max then max:=a[i,j]; for i:=1 to n do begin k:=0; for j:=1 to m do if Odd(a[i,j]) then Inc(k); if m-k>k then for j:=1 to m do if Odd(a[i,j]) then a[i,j]:=max; end; for i:=1 to n do begin for j:=1 to m do Write(' ',a[i,j]:3); WriteLn; end; end.
Объяснение кода листинга программы
- В первой строке кода используется цикл
for
, который выполняется от 1 доn
(количество строк) и от 1 доm
(количество столбцов). - Внутри первого цикла
if
проверяется условиеa[i,j] > max
. Если это условие истинно, то значениеmax
присваивается значениюa[i,j]
. Это происходит для каждой строки и каждого столбца. - Во втором цикле
for
также используется циклfor
, который выполняется от 1 доm
(количество столбцов). - Внутри второго цикла
if
проверяется условиеOdd(a[i,j])
. Если это условие истинно, то значение переменнойk
увеличивается на единицу. - Затем проверяется условие
m-k > k
. Если это условие истинно, то для каждой строки и каждого столбца значениеa[i,j]
присваивается максимальному значениюmax
. - В конце кода используется третий цикл
for
, который выполняется от 1 доn
(количество строк). - Внутри третьего цикла
Write
выводится пробел, а затем выводится значение каждой ячейки матрицыa[i,j]
(используется формат с разделителем 3 пробелов). - Код завершается вызовом функции
WriteLn
, которая выводит новую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д