問題C 某計算器的超電磁炮

2021-07-27 17:48:00 字數 1130 閱讀 2461

時間限制:1 sec

記憶體限制:64 mb

提交:602

解決:179

提交狀態

輸入由非負整數、+、-、*、/、(、)組成的計算表示式,計算該表示式的值。

每個輸入檔案中一組資料。

輸入只有一行,不超過200個字元,其中不存在空格。資料保證表示式一定合法,且所有的整數都不小於0、不大於1024。中間結果保證不超過15位有效數字精度。

輸出一行,即表示式的值,結果精度保留小數點後2位。

3+(12/(2*2+1))

5.40 提示

晴神書(演算法筆記)上第七章的基礎上加上對左括號和右括號的處理就行。如果 str[i]是左括號,那麼入操

作符棧;如果 str[i]是右括號,那麼不斷把操作符棧中的元素彈出到字尾表示式佇列中,直到

碰到左括號。注意左括號跟右括號都是不需要進入字尾表示式中的。具體看**。

#include #include #include #include #include #include using namespace std;

struct node ;

string str;

stacks; //操作符棧

queueq; //字尾表示式序列

mapop;

void change()

q.push(temp); //將這個運算元壓入字尾表示式的佇列

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

s.pop(); // 彈出左括號,不入隊

i++;

} else

temp.op = str[i];

s.push(temp);//把該操作符壓入操作符棧中

i++;}}

//如果操作符棧中還有操作符,就把它彈出到字尾表示式佇列中

while(!s.empty())

}double cal()

}return s.top().num;//棧頂元素就是字尾表示式的值

}int main()

某科學的間斷超電磁炮

時間限制 1000 ms 記憶體限制 65535 k 問題描述 炮姐bilibili為了練習自己的能力,於是左右開弓開始shoot 開始的時候電磁炮應該是間斷的,所以打到的靶子也是不連續的。比如左手能打到1號 2號 3號靶子,右手能達到1 2 3 4 5號靶子。雖然她想知道自己到底打到了哪些靶子很容...

C 簡單的計算器

實驗目的和要求 1.設計背景 設計擁有簡單的計算功能,方便計算簡單的計算題。方便使用者的使用。2.設計功能 具有一般計算功能,能進行基本的加減乘除運算,還具有求根號,倒數等功能。特點是能進行不同進製的運算和不同進製間的轉換。3.模組分解 該計算器分為3個模組,分別是 textbox 顯示區 顯示數字...

C語言的計算器

printf 半徑輸入錯誤!n break case 7 case 8 case 13 break case 9 case 10 printf 從1到輸入數之間的偶數和是 d n sum break case 12 break case 11 while i m printf 從1到輸入數之間所有3...