40 БАЛЛОВ.Всем Доброго Вечера), помогите изменить начальную программу(В ПАСКАЛЕ). Дано такое задание: Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и последним элементами. Т.е должно получиться следующее:
1 2 3 4 5
1 4 3 2 5
Начальная программа:
Program homework;
var a:array [1..100] of integer;
i,n:integer;
begin
writeln('введите n=');
readln(n) ;
writeln('введите массив:');
for i:=1 to n do readln(a[i]);
for i:=n downto 1 do
write(' ',a[i]);
readln;
end.
P.S. Буду очень благодарен, если подробно все распишите, плохо понимаю информатику(
Answers & Comments
var a:array [1..n] of integer;
i,imin,tmp:integer;
begin
writeln('введите массив:');
for i:=1 to n do readln(a[i]);
imin:=1;
for i:=2 to n do
if a[i]<a[imin] then imin:=i;
writeln(imin);
for i:=1 to (n-imin-1) div 2 do
begin tmp:=a[imin+i]; a[imin+i]:=a[n-i]; a[n-i]:=tmp; end;
for i:=1 to n do write(a[i],' ');
end.
Пример:
введите массив:
12
32
10
22
48
45
36
29
45
25
12 32 10 45 29 36 45 48 22 25
var a:array [1..100] of integer;
i,n:integer;
begin
writeln('введите n=');
readln(n) ;
writeln('введите массив:');
for i:=1 to n do readln(a[i]);
write(a[1]);
for i:=(n-1) downto 2 do
write(' ',a[i]);
writeln(' ',a[n]);
end.
Verified answer
Первое: массив должен быть от 1 до n(количество чисел которое будет вводится), поэтому в строке (var a:array [1..100] of integer;) нужно 100 заменить на nОстальное через минуту