STLを使ったプログラムなのですが、記載したfor文の中に入るコードがわかりません。
多数のサイトを漁り解決方法を探ってみたものの、正直何を言ってるのかわからないほどの状態です。
初歩的な質問で恐縮ですが、ご回答いただければ幸いです。
<問題文>
・数字を読み込んだら スタックに push する、
・「+」を読み込んだら スタックから2つ値を取り出し、足した結果をスタックにpush する
・「-」、「*」、「/」も同様
・最後まで処理するとスタックの top に結果が入っている
という手順でこの式を計算できる。std::stack を使って、これを計算するプログラムを作れ。
#include<stdio.h> #include<string> #include<vector> #include<stack> int main() { std::vector<std::string> input= {"1", "2", "*", "3", "4", "/", "-"}; std::stack<double> s; for (auto v : input) { // v が "+" なら s から 2つ値を取り出し、足した結果を s に push する// //v が "-"、"*"、"/″についても同様// //v が 上記以外のとき、v を double に変換し s に push する// } printf("%f", s.top()); }
回答2件
あなたの回答
tips
プレビュー