Приветствие Stack Overflow сообщество.Я пытаюсь сделать функцию, которая может вытолкнуть все значения в стеке, добавить их и затем вернуть их обратно.До сих пор я успешно суммировал, вычитал, делил и умножал два значения, просто помещая их дважды в локальные переменные, выполняя операцию и затем возвращая завершенное значение назад.Но чтобы добавить все, что мне нужно, нужно выскочить из стека, пока он не опустеет.
Я попытался добавить цикл для выталкивания двух значений и возврата результата обратно.Это то, что я имею в виду
push these numbers 1 , 2 , 3, 4 ,5
pop 5
pop 4
add 5 + 4 = 9
push 9
stack (1,2,3,4,9)
pop 9
pop 4
add 9+4 = 13
push 13
и так далее.Я попытался использовать функцию isEmpty для цикла и сделать так, чтобы он останавливался, когда одно из значений не равно NULL.Но я понятия не имею, как остановить или запустить цикл, чтобы он продолжал работать, пока не опустеет.Вот что я написал.
void MathStack::addAll()
{
int num = 0,num2 = 0, sum = 0;
while(!isEmpty())
{
//Pop the first two values off the stack.
pop(num);
cout << "Popping " << num << "\n";
pop(num2);
cout << "Popping " << num2 << "\n";
//Add the two values, store in sum.
sum = num + num2;
cout << "Sum is " << sum;
//Push sum back onto the stack.
push(sum);
num =0;
num2 = 0;
}
}
Есть предложения?