Переставить элементы массива в порядке убывания и найти сумму элементов массива находящихся между наибольшим и наименьшим элементом массива не включая их самих pascal
У, сначала нужно найти макс и мин элементы. 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
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 -510 9 9 7 4 1 1 -5 -5 -7 -8 -9 -10 -10 -10-3Max = 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