40 БАЛЛОВ.Всем Доброго Вечера), помогите изменить начальную программу(В ПАСКАЛЕ). Дано...

0 голосов
201 просмотров

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


Информатика (80 баллов) | 201 просмотров
Дано ответов: 2
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]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

(194k баллов)
0 голосов

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

(424 баллов)
0

объяснять нужно?

0

Вроде более менее понятно)

0

9 строка: добавил оператор, который напишет первый член массива

0

10 строка: поменял значения счетчика

0

Хорошо

0

стоп) сори, я только учусь 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.

0

Сейчас

0

Теперь лучше)

0

Сравнил

0

В школе информатику плохо объясняют, хочу начать дополнительно изучать,а то все предметы кроме этого понимаю). Давно учишься?