Другие языки программирования и технологии

Turbo Pascal. Дан двумерный массив. Все нули заменить максимальным элементом.

N H
N H
95
С использованием подпрограмм: одной функции и трёх процедур.

program N70235430;
type TMatrix = array[1..10, 1..15] of shortint;

procedure CreateArray(var a:TMatrix; var m, n:byte);
var i, j:byte;
begin
n := random(14) + 2;
m := random(9) + 2;
for i := 1 to m do
for j := 1 to n do
a[ i, j ] := random(11) - 5
end;

procedure PrintArray(var a:TMatrix; m, n:byte);
var i, j:byte;
begin
for i := 1 to m do
begin
for j := 1 to n do
write(a[ i, j ]:4);
writeln
end
end;

function MaxOfArray(var a:TMatrix; m, n:byte):shortint;
var i, j:byte;
max:shortint;
begin
for i := 1 to m do
for j := 1 to n do
if (i * j = 1) or (a[ i, j ] > max) then
max := a[ i, j ];
MaxOfArray := max
end;

procedure ChangeArray(var a:TMatrix; m, n:byte; x:shortint);
var i, j:byte;
begin
for i := 1 to m do
for j := 1 to n do
if a[ i, j ] = 0 then
a[ i, j ] := x
end;

var M:TMatrix;
x, y:byte;
begin
randomize;
CreateArray(M,y,x);
writeln('Дан массив (',y,'x',x,'):');
PrintArray(M,y,x);
ChangeArray(M,y,x,MaxOfArray(M,y,x));
writeln('Преобразованный массив: ');
PrintArray(M,y,x);
readln
end.
Tejen Ahalow
Tejen Ahalow
51 590
Лучший ответ
Сначала найди максимальный элемент массива, затем иди циклом по массиву и заменяй нули на найденный максимальный элемент

Похожие вопросы