https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_3_A
上記のURLの問題で、以下のコードを提出し、AC(Accepted)されました。
C++
1#include <bits/stdc++.h> 2 3using namespace std; 4 5int main() 6{ 7 string s; 8 stack<int> st; 9 while (cin >> s) 10 { 11 if (s == "+") 12 { 13 int a = st.top(); 14 st.pop(); 15 int b = st.top(); 16 st.pop(); 17 st.push(b + a); 18 } 19 else if (s == "-") 20 { 21 int a = st.top(); 22 st.pop(); 23 int b = st.top(); 24 st.pop(); 25 st.push(b - a); 26 } 27 else if (s == "*") 28 { 29 int a = st.top(); 30 st.pop(); 31 int b = st.top(); 32 st.pop(); 33 st.push(b * a); 34 } 35 else 36 { 37 st.push(stoi(s)); 38 } 39 } 40 cout << st.top() << endl; 41}
上記URLではACされるのですが、Visual Studio 2019で上記のプログラム実行してみると、結果出力まで至りません。
この相違が生じる理由として考えられる要因として何が挙げられるのでしょうか?
Visual Studio Community 2019でプログラムを実行する際、入力例を入力後、次の行でCtrl+Zを入力していましたが、その後、Enterキーを押していませんでした。
ちなみに、私は標準入力のループから脱出するには
式cin>>sの値が0であること、つまり、
抽出子>>の第2引数が見つからない場合、抽出子>>の返却値型であるbasic_istream&型として、0を返すように定義されている
と考えています。この解釈は正しいでしょうか?
回答1件
あなたの回答
tips
プレビュー