Предмет: Информатика, автор: wWandSs

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. Буду очень благодарен, если подробно все распишите, плохо понимаю информатику(

Ответы

Автор ответа: timus2000
1
первое: массив должен быть от 1 до n(количество чисел которое будет вводится), поэтому в строке (var a:array [1..100] of integer;) нужно 100 заменить на n
Остальное через минуту

timus2000: объяснять нужно?
wWandSs: Вроде более менее понятно)
timus2000: 9 строка: добавил оператор, который напишет первый член массива
timus2000: 10 строка: поменял значения счетчика
wWandSs: Хорошо
timus2000: стоп) сори, я только учусь 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]);
write(a[1]);
for i:=(n-1) downto 2 do
write(' ',a[i]);
writeln(' ',a[n]);
end.
wWandSs: Сейчас
wWandSs: Теперь лучше)
wWandSs: Сравнил
wWandSs: В школе информатику плохо объясняют, хочу начать дополнительно изучать,а то все предметы кроме этого понимаю). Давно учишься?
Автор ответа: petyaGavrikov
0
const n=10;
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

Похожие вопросы
Предмет: Русский язык, автор: vzaytseva2008