6 7 問題 A 簡單計算器

2021-10-22 05:54:29 字數 915 閱讀 4504

題目描述

讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。

輸入測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。

輸出對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。

樣例輸入 copy

30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92

0

樣例輸出 copy

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或有非法...