題目描述
讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
輸入測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
輸出對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
樣例輸入 copy
30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92樣例輸出 copy0
12178.21解題思路:
1.中綴表示式轉字尾表示式
2.計算字尾表示式
#include #include #include #include #include using namespace std;
struct node
;queue q;
stack s;
mapm;
string str;
void init()
void change()///中綴轉字尾
else if(str[i]!=' ')
t.flag=0;
t.ch=str[i];
s.push(t);}}
t.flag=1;
t.data=cnt;
q.push(t);
while(!s.empty())
}void cal()///計算字尾表示式的值
}double ans=s.top().data;
printf("%.2lf\n",ans);
}int main()
return 0;
}
6 7 簡單計算器
模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入格式 輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。輸出格式 在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出...
習題6 7 簡單計算器
習題6 7 簡單計算器 20分 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運...
習題6 7 簡單計算器
習題6 7 簡單計算器 20 分 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法...