#include <bits/stdc++.h> using namespace std; stack <int> sta; int main(){ int l, i, x, y1, y2, y; string st; while(getline(cin, st)){ l = st.size(); l -= 1; while(!sta.empty()) sta.pop(); for(i = 0; i < l; i++){ if(st[i] >= '0' && st[i] <= '9'){ x = st[i] - '0'; sta.push(x); } else { y2 = sta.top();/*后进栈*/ sta.pop(); y1 = sta.top();/*前进栈*/ sta.pop(); if(st[i] == '*'){ y = y1*y2; } else if(st[i] == '/'){ y = y1/y2; } else if(st[i] == '-'){ y = y1-y2; } else if(st[i] == '+'){ y = y1+y2; } sta.push(y); } } printf("%d\n", sta.top()); } return 0; }这个怎么改成以@结束
时间: 2024-02-10 21:11:24 浏览: 29
可以将原来的 `while(getline(cin, st))` 改为 `while(cin >> st && st != "@")` 即可,表示读入字符串直到遇到以 "@" 结束的字符串。同时,由于 `cin >> st` 会忽略空格,所以原来的代码中不需要减一,可以改为 `l = st.size();`。修改后的代码如下所示:
```c++
#include <bits/stdc++.h>
using namespace std;
stack <int> sta;
int main(){
int l, i, x, y1, y2, y;
string st;
while(cin >> st && st != "@"){
l = st.size();
while(!sta.empty())
sta.pop();
for(i = 0; i < l; i++){
if(st[i] >= '0' && st[i] <= '9'){
x = st[i] - '0';
sta.push(x);
}
else {
y2 = sta.top();/*后进栈*/
sta.pop();
y1 = sta.top();/*前进栈*/
sta.pop();
if(st[i] == '*'){
y = y1*y2;
}
else if(st[i] == '/'){
y = y1/y2;
}
else if(st[i] == '-'){
y = y1-y2;
}
else if(st[i] == '+'){
y = y1+y2;
}
sta.push(y);
}
}
printf("%d\n", sta.top());
}
return 0;
}
```
相关推荐
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)