taske047Ataske
02.06.2023 08:39

Взаданном стеке найти минимальный по абсолютному значению элемент и удалить все элементы с таким значением. (искать, перекладывать в дополнительный стек, удалять при перекладывании обратно: [1,7,-1,3,2],получили [7,3,2]).

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
GDIZzzEr
11.08.2020 07:29
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018
Внимание! Если программа не работает, обновите версию!

begin
  var St:=new Stack<integer>;
  foreach var k in ReadSeqInteger('Вводите данные:',ReadInteger('n=')) do
    St.Push(k);
  St.Println; // исходное содержимое стека
  var St1:=new Stack<integer>;
  var min:=MaxInt;
  var k:integer;
  while St.Count>0 do begin
    k:=St.Pop;
    if Abs(k)<min then min:=Abs(k);
    St1.Push(k);
    end;
  while St1.Count>0 do begin
    k:=St1.pop;
    if Abs(k)<>min then St.Push(k)
    end;
  St.Println
end.

Пример
n= 5
Вводите данные: 2 3 -1 7 1
1 7 -1 3 2
7 3 2
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота