Есть ответ 👍

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

118
428
Посмотреть ответы 3

Ответы на вопрос:


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
Kolyakek
4,6(38 оценок)

У, сначала нужно найти макс и мин элементы.  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

прежде чем использовать переменные, их следует описать, то есть указать их типы. для этого в vba используется оператор описания переменных dim, который описывает переменные и выделяет для них память, причем описывать нужно каждую переменную отдельно. напомним, что оператор описания переменных выглядит следующим образом:

dim имя переменной as тип

Популярно: Информатика