Предмет: Информатика,
автор: dontomsan
В заданном стеке найти минимальный по абсолютному значению элемент и удалить все элементы с таким значением. (Искать, перекладывать в дополнительный стек, удалять при перекладывании обратно: [1,7,-1,3,2],получили [7,3,2]).
Ответы
Автор ответа:
0
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
Внимание! Если программа не работает, обновите версию!
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
Похожие вопросы
Предмет: Алгебра,
автор: ackatovna
Предмет: Информатика,
автор: FlauntOrph
Предмет: Английский язык,
автор: mikl447475
Предмет: Математика,
автор: kamushkinal
Предмет: География,
автор: arefjevaelina1379