Нужно поменять местами макс. и мин. значения. Что не так? PROGRAM MATRICA; USES CRT; CONST N=3; M=4; A=-20; B=20; VAR I, J, MIN, MAX, T: INTEGER; Y:ARRAY [1..N, 1..M] OF INTEGER; BEGIN CLRSCR; RANDOMIZE; WRITELN('MATRICA Y'); M...
Нужно поменять местами макс. и мин. значения. Что не так?
PROGRAM MATRICA;
USES CRT;
CONST N=3; M=4; A=-20; B=20;
VAR I, J, MIN, MAX, T: INTEGER;
Y:ARRAY [1..N, 1..M] OF INTEGER;
BEGIN
CLRSCR;
RANDOMIZE;
WRITELN('MATRICA Y');
MIN:=0;
MAX:=0;
T:=0;
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO M DO BEGIN
Y[I,J]:=TRUNC((B-A)*RANDOM+A);
WRITE(Y[I,J]:6);
IF Y[I,J]MAX THEN MAX:=Y[I,J];
END; WRITELN; END;
WRITELN('Минимальное значение = ', MIN);
WRITELN('Максимальное значение = ', MAX);
T:=MIN;
MIN:=MAX;
MAX:=T;
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO M DO BEGIN
WRITE(Y[I,J]:6);
END; WRITELN; END;
READKEY;
END.
Ответ(ы) на вопрос:
Гость
program matrix;
var A: array[1..10, 1..10] of integer;
i, j, mini, minj, maxi, maxj, temp: integer;
begin Randomize;
for i := 1 to 10 do begin
for j := 1 to 10 do begin
A[i, j] := random(100);
write(A[i, j], ' ');
end;
writeln;
end;
mini := 1;
minj:=1;
maxi := 1;
maxj:=1;
for i := 1 to 10 do
for j := 1 to 10 do
begin
if A[i, j] < A[mini,minj] then begin
mini := i;
minj := j;
end;
if A[i, j] > A[maxi,maxj] then begin
maxi := i;
maxj := j;
end;
end;
WriteLn('min = ',A[mini,minj],' это ',mini,' ряд ',minj,' столбца.' );
WriteLn('max = ',A[maxi,maxj],' это ',maxi,' ряд ',maxj,' столбца.' );
temp := A[maxi, maxj];
A[maxi, maxj] := A[mini, minj];
A[mini, minj] := temp;
writeln;
for i := 1 to 10 do begin
for j := 1 to 10 do
write(A[i, j], ' ');
writeln;
end;
readln;
end.
temp - переменная для временного хранения минимальных и максимальных элементов.
Не нашли ответ?
Похожие вопросы