time limit: 1 sec
memory limit: 128 mb
submit: 1931
solved: 1032 [
submit][
status][
web board]
給出乙個表示式,求出其值。表示式中只存在 +、-、*、三種運算,我們假設表示式是正確的,
且不存在除數為零的情況。
第一行輸入乙個正整數 n(1<=n<=30) ,表示有表示式 n 個數(每個數均小於100),表示式中只有數值(都是大於零的數)
和運算子(包括+、-、*、=四種運算子,其中 = 只在表示式最後,表示乙個表示式輸出結束,且整個表示式不存在空格)
表示式的值(表示式的值不會超出 double 的範圍並保留兩位小數)
51*2*3*4*5=55-1-2+3+4=
120.009.00
使用stl的stack容易實現。
#include#include#include#includeusing namespace std;
int main()
else if(t.top()=='/')
}s.push(a);
t.push(f);
}double sum=0;
while(!s.empty())
printf("%.2lf\n",sum);
}return 0;
}
實驗7 Problem D STL 表示式求值
給出乙個表示式,求出其值。表示式中只存在 三種運算,我們假設表示式是正確的,且不存在除數為零的情況。第一行輸入乙個正整數 n 1 n 30 表示有表示式 n 個數 每個數均小於100 表示式中只有數值 都是大於零的數 和運算子 包括 四種運算子,其中 只在表示式最後,表示乙個表示式輸出結束,且整個表...
中綴表示式轉字尾表示式 求表示式的值
中綴轉字尾需要遵守以下規則 1 運算元 直接輸出 2 直接入棧 3 將 以前的直接輸出,並將 出棧 不輸出 4 運算子 將優先順序不小於該運算子的操作符出棧,最後將該運算子入棧 5 最後將棧中的元素依次彈出 6 優先順序 大於 大於 class intosuf if op i equals if o...
中綴表示式轉字尾表示式 求字尾表示式值
中綴表示式轉字尾表示式 佇列q和棧s q存放字尾表示式結果 s存放操作符 設棧頂元素top 當前讀取元素a 演算法如果s是空棧 a入棧非空棧 a不是操作符,a插入佇列q 如果a為 a入棧 否則,如果a為 把棧內操作符出棧依次插入佇列q,直至遇到得 元素出棧為止 否則,如果a優先順序大於top,a入棧...