Плз, помогите решить задачу. Нужно оч срочно. Я над ней голову уже 2 недели ломаю, никак.
Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами.
Как делала то показывай ... Минимальный и максимальный находить умеешь ? Если нет, воспользуйся поиском, решалось много-много раз.
Вот я её попыталась решить:
uses crt;
const
n = 10;
var
x: Array [1..n] of Integer;
i, nMin, nMax, T: Integer;
begin
clrscr;
for i := 1 to n do begin
write('x[', i, '] = '); readln(x[i]);
end;
nMin := 1; nMax := 1;
for i := 2 to n do begin
if x[i] > x[nMax] then nMax := i;
if x[i] < x[nMin] then nMin := i;
end;
if nMax < nMin then begin
T := nMin; nMin := nMax; nMax := T;
end;
clrscr;
for i := 1 to n do write(x[i]:4);
inc(nMin); dec(nMax);
for i := nMin to nMin + (nMax - nMin) div 2 do begin
T := x[i];
x[i] := x[nMax - i + nMin];
x[nMax - i + nMin] := T;
end;
writeln;
for i := 1 to n do write(x[i]:4);
readln;
end.
Огромное спасибо.
Amele, но решение klem4 верно только если вам надо найти первый интервал на векторе. То есть код ищет первый Мах Мin или Min Max интервал и меняет порядок в нём, но если вам надо чтобы на всех возможных интервалах удовлетворяющих условию задания порядок менялся, надо доделывать. То есть вариант 1 2 3 10 4 5 6 7 8 1 выдаст 1 3 2 10 4 5 6 7 8 1, хотя по идее ответ 1 3 2 10 8 7 6 5 4 1 будет правильнее. Вообще если лексически рассмотреть вопрос, то фраза