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

переставить элементы массива в порядке убывания и найти сумму элементов массива находящихся между наибольшим и наименьшим элементом массива не включая их самих pascal

Ответы

Автор ответа: itishnik33
0
у, сначала нужно найти макс и мин элементы. 
Max = A(1) 
nMax = 1 
Min = A(1) 
nMin = 1 
For i = 2 to N 
if A(i) > Max Then 
Max = A(i) 
nMax = i 
End If 
if A(i) < Min Then 
Min = A(i) 
nMin = i 
End If 
Next i 
Таким образом мы узнали макс и мин элементы, а главное, их номера nMax и nMin. 
Проверим, какой номер больше, и сделаем так, чтобы было nMin < nMax. 
Если nMin > nMax, поменяем их местами 
If nMin > nMax Then 
Q = nMin 
nMin = nMax 
nMax = Q 
End If 
Теперь нужно отсортировать элементы между ними пузырьковой сортировкой по убыванию 
For i = nMin + 1 To nMax - 1 
Здесь вставляется алгоритм пузырьковой сортировки, который я не помню. Поищи в Интернете. 
Next i

Аноним: В общем, это какая-то ерунда. Сказано, что сначала элементы надо отсортировать, а потом с ними что-то делать.
Аноним: И не забудьте учесть, что максимальный и/или минимальный элемент может быть не единственным.
Автор ответа: Аноним
1

PascalABC.NET 3.4.2, сборка 1880 от 18.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(ReadInteger('n='), -10, 10);

 a.Println;

 a := a.OrderDescending.ToArray;

 a.Println;

 var (max, min) := (a.Max, a.Min);

 var i1 := a.IndexesOf(t -> t = max).Last;

 var i2 := a.IndexOf(min);

 a?[i1 + 1:i2].Sum.Println

end.

Пример

n= 15

-10 9 9 -10 -5 -7 -9 1 -8 -10 1 7 10 4 -5

10 9 9 7 4 1 1 -5 -5 -7 -8 -9 -10 -10 -10

-3

Похожие вопросы
Предмет: Алгебра, автор: vikyca231
Предмет: Алгебра, автор: мак86