codeup 1918 簡單計算器

2021-10-02 02:25:20 字數 1635 閱讀 4970

問題 a: 簡單計算器

時間限制: 1 sec 記憶體限制: 32 mb

提交: 2132 解決: 877

[提交][狀態][討論版][命題人:外部匯入]

題目描述

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

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

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

樣例輸入

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

0樣例輸出

12178.21

1,用string 儲存讀入的數值

2,去除讀入的空格

3,建立結構體

#include

#include

#include

#include

#include

#include

using std::string;

using std::map;

using std::stack;

using std::queue;

using std::cin;

typedef

struct node

node;

string g_str;

stack g_s;

queue g_q;

map<

int,

char

> g_op;

void

change()

g_q.

push

(temp)

;//運算元壓入字尾表示式佇列

}else

temp.m_op = g_str[i]

; g_s.

push

(temp)

;//壓入操作符棧

i++;}

}while

(!g_s.

empty()

)// while(!g_q.empty()) //列印字尾佇列

// else

// g_q.pop();

// }

// printf("\n");

}double

cal(

)else

}return g_s.

top(

).m_num;

//棧頂元素就是字尾表示式的值

}int

main

(int argc,

char

const

*ar**)

while

(!g_s.

empty()

) g_s.

pop();

//初始化棧,在下次計算開始時清空棧內容

change()

;printf

("%.2f\n"

,cal()

);}return0;

}

codeup1918簡單計算器

讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。30 90 26 9...

codeup 1918 簡單計算器

codeup 1918 include include include include include include using namespace std struct node string srt stack s 操作符棧 queue q 字尾表示式序列 map char int op vo...

CodeUp1918 簡單計算器

讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。30 90 26 9...