Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит все минимальные значения и заменяет их на максимальные. Гарантируется, что в массиве есть хотя бы два разных элемента. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки. Например, для массива из восьми элементов: 29 4 115 7 195 25 4 106 программа должна вывести (по одному числу в строке) числа: 29 195 115 7 195 25 195 106 Язык Паскаль
program ReplaceMinWithMax; var arr: array[1..30] of integer; i, minVal, maxVal, minCount: integer; begin minCount := 0;
// вводим элементы массива for i := 1 to 30 do begin readln(arr[i]); end;
// находим минимальное и максимальное значение в массиве minVal := arr[1]; maxVal := arr[1]; for i := 2 to 30 do begin if arr[i] < minVal then minVal := arr[i] else if arr[i] > maxVal then maxVal := arr[i]; end;
// считаем количество минимальных значений for i := 1 to 30 do begin if arr[i] = minVal then minCount := minCount + 1; end;
// заменяем все минимальные значения на максимальное for i := 1 to 30 do begin if arr[i] = minVal then arr[i] := maxVal; writeln(arr[i]); end; end.
program ReplaceMinWithMax;
var
arr: array[1..30] of integer;
i, minVal, maxVal, minCount: integer;
begin
minCount := 0;
// вводим элементы массива
for i := 1 to 30 do
begin
readln(arr[i]);
end;
// находим минимальное и максимальное значение в массиве
minVal := arr[1];
maxVal := arr[1];
for i := 2 to 30 do
begin
if arr[i] < minVal then
minVal := arr[i]
else if arr[i] > maxVal then
maxVal := arr[i];
end;
// считаем количество минимальных значений
for i := 1 to 30 do
begin
if arr[i] = minVal then
minCount := minCount + 1;
end;
// заменяем все минимальные значения на максимальное
for i := 1 to 30 do
begin
if arr[i] = minVal then
arr[i] := maxVal;
writeln(arr[i]);
end;
end.