PAT 求字首表示式的值

2021-08-22 10:07:42 字數 862 閱讀 6254

算術表示式有字首表示法、中綴表示法和字尾表示法等形式。字首表示式指二元運算子位於兩個運算數之前,例如2+3*(7-4)+8/4的字首表示式是:+ + 2 * 3 - 7 4 / 8 4。請設計程式計算字首表示式的結果值。

輸入在一行內給出不超過30個字元的字首表示式,只包含+-*\以及運算數,不同物件(運算數、運算符號)之間以空格分隔。

輸出字首表示式的運算結果,保留小數點後1位,或錯誤資訊error

+ + 2 * 3 - 7 4 / 8 4
13.0
分析:1.從後往前,遇到數字入棧,遇到運算子時,從棧裡取出兩個數字進行計算,把結果再入棧。 

2.遇到那兩位以上的數字處理str.substr(i,j)(獲得字串i到j之間的子字串),stod(st)(將字串轉換為double型)。

#include#include#includeusing namespace std;

string str;

int i;

stacks;

void getnumber()//獲得數字

bool cmp(double a, char c, double b, double &d)

return 1;

}int main()

else

} }if (!flag)

printf("%.1f", s.top());

return 0;

}

pat 求字首表示式的值

求字首表示式的值 算術表示式有字首表示法 中綴表示法和字尾表示法等形式。字首表示式指二元運算子位於兩個運算數之前,例如2 3 7 4 8 4的字首表示式是 2 3 7 4 8 4。請設計程式計算字首表示式的結果值。輸入在一行內給出不超過30個字元的字首表示式,只包含 以及運算數,不同物件 運算數 運...

求字首表示式的值

首先粘一下題目 算術表示式有字首表示法 中綴表示法和字尾表示法等形式。字首表示式指二元運算子位於兩個運算數之前,例如2 3 7 4 8 4的字首表示式是 2 3 7 4 8 4。請設計程式計算字首表示式的結果值。輸入格式說明 輸入在一行內給出不超過30個字元的字首表示式,只包含 以及運算數,不同物件...

求字首表示式的值

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。字首表示式指二元運算子位於兩個運算數之前,例如2 3 7 4 8 4的字首表示式是 2 3 7 4 8 4。請設計程式計算字首表示式的結果值。輸入在一行內給出不超過30個字元的字首表示式,只包含 以及運算數,不同物件 運算數 運算符號 之間以空格...