Problem D STL 表示式求值

2021-07-29 19:03:51 字數 746 閱讀 6653

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入棧...