グリーティングスタックオーバーフローコミュニティ。私は、スタック内のすべての値をポップアップして追加し、それらを戻すことができる関数を作成しようとしています。私はこれまで、ローカル変数に2回ポップするだけで、2つの値を加算、減算、除算、および乗算し、操作を実行してから完了した値をプッシュバックすることで成功しました。しかし、私はそれが空になるまでスタックからポップする必要があります。スタックからすべての値をポップし、それらをすべての値の合計としてプッシュバックする方法はありますか?
2つの値をポップして結果を戻すループを追加しようとしました。これは私が心
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関数を使用して試して、値の1つが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;
}
}
お勧めはありますか?
あなたは正しいです!私はそれが私に来ないとは信じられません。どうもありがとうございました。今働いている。 – falnir