表示式轉換 25 分

2022-02-09 17:20:08 字數 1340 閱讀 1326

首先規定優先順序,括號為最高優先順序,乘號或除號為次優先順序,加或減號為最低優先順序,至於數字,碰到就直接輸出即可。

既然是數字,就有小數,整數,正數,負數之分,還有關於二元運算子的輸出,在括號內的二元運算子優先輸出,優先順序高的優先輸出(當然括號不算啊)

根據題意,在輸出時可分為以下幾種情況。

#include#include#include#include#include#include#includeusing namespace std;

stacksign;

char s[22];

mapmp;

int main()

if(isfirst)

isfirst = false;

}else if(s[i] >= '0' && s[i] <= '9')

if(isfirst)

isfirst = false;

}else if(s[i] == ')')

if(!sign.empty() && sign.top() == '(')

sign.pop();

}else if(sign.empty() || (mp[s[i]] > mp[sign.top()]))

sign.push(s[i]);

else

sign.push(s[i]);}}

while(!sign.empty())

}

關於這道題,如果讓你輸出這個表示式的值,可以這樣做。

安排兩個棧,分別存數字和符號,具體要求如下。(該程式還有欠缺,目前對帶正號的正數以及小數不支援,只支援正常的整數混合運算)

#include#include#include#include#includeusing namespace std;

stacknum;

stackoper;

mapmp;

char s[22];

void solve(int a, int b, char o)

int main()

else if(mp[oper.top()] > mp[s[i]])

if(oper.top() == '(')

oper.pop();

}else

oper.push(s[i]);}}

}}}while(!oper.empty())

cout << num.top() << endl;

}

5 20 表示式轉換 25分

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...

5 20 表示式轉換 25分

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...

7 1 表示式轉換(25 分)

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...