
Евграф
7 год назад
В одномерном массиве из 10 элементов определить местоположение минимального и максимального элементов. Обнулить элементы, стоящие между ними , а также вывести полученный массив
ОТВЕТЫ

Филат
Jul 17, 2019
Поскольку неясно, что делать, если в массиве несколько минимальных или максимальных элементов, то считаем, что их только по одному.
const n=10;
var
a: array[1..n] of integer;
mn,mx: integer;
i,k1,k2: byte;
begin
mn:=maxint;
mx:=-maxint;
writeln (Введите ,n, чисел: );
for i:=1 to n do begin;
read (a[i]);
if a[i]lt;mn then begin mn:=a[i]; k1:=i end;
if a[i]gt;mx then begin mx:=a[i]; k2:=i end;
end;
for i:=1 to n do
if (igt;min(k1,k2)) and (ilt;max(k1,k2)) then a[i]:=0;
writeln;
writeln (Местоположение минимального элемента: ,min(k1,k2));
writeln (Местоположение максимального элемента: ,max(k1,k2));
writeln;
print (a);
end.
--------------------------------------------
Пример:
Введите 10 чисел: 5 2 9 4 6 8 2 1 3 7
Местоположение минимального элемента: 3
Местоположение максимального элемента: 8
5 2 9 0 0 0 0 1 3 7
const n=10;
var
a: array[1..n] of integer;
mn,mx: integer;
i,k1,k2: byte;
begin
mn:=maxint;
mx:=-maxint;
writeln (Введите ,n, чисел: );
for i:=1 to n do begin;
read (a[i]);
if a[i]lt;mn then begin mn:=a[i]; k1:=i end;
if a[i]gt;mx then begin mx:=a[i]; k2:=i end;
end;
for i:=1 to n do
if (igt;min(k1,k2)) and (ilt;max(k1,k2)) then a[i]:=0;
writeln;
writeln (Местоположение минимального элемента: ,min(k1,k2));
writeln (Местоположение максимального элемента: ,max(k1,k2));
writeln;
print (a);
end.
--------------------------------------------
Пример:
Введите 10 чисел: 5 2 9 4 6 8 2 1 3 7
Местоположение минимального элемента: 3
Местоположение максимального элемента: 8
5 2 9 0 0 0 0 1 3 7
150
Смежные вопросы: