×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#1035: 為什麼會溢位~請大大幫忙
bird
(GG)
學校:
长郡中学
編號:
2681
×
傳送站內訊息
傳給:
主題:
內容:
來源:
[111.255.206.95]
註冊時間:
2008-09-26 08:42:01
最後登入時間:
2010-10-23 20:18:46
d016.
後序運算法
| From: [140.117.182.115] | 發表日期: 2008-12-07 10:37
#include<iostream>
using namespace std;
class stack
{
public:
stack():top(-1){}
void push(int x){b[++top]=x;}
int pop(){return b[top--];}
private:
int top;
int b[100];
};
int main()
{
string s;
while(getline(cin,s)){
stack stk;
int i=0,tp;
while(s[i]!='\0')
{
if(isdigit(s[i]))
stk.push(s[i]-'0');
else
{
switch(s[i])
{
case'+':
stk.push(stk.pop()+stk.pop());break;
case'*':
stk.push(stk.pop()*stk.pop());break;
case'-':
tp=stk.pop();
stk.push(stk.pop()-tp);break;
case'/':
tp=stk.pop();
if(tp!=0)
stk.push(stk.pop()/tp);break;
case'%':
tp=stk.pop();
stk.push(stk.pop()%tp);break;
}
}
i++;
}
cout<<stk.pop()<<endl;
}
}