- 最後登錄
- 2024-9-27
- 在線時間
- 90 小時
- 註冊時間
- 2011-6-29
- 閱讀權限
- 20
- 精華
- 0
- UID
- 9959342
- 帖子
- 165
- 積分
- 519 點
- 潛水值
- 28739 米
| 所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。 借花獻佛~
我沒有將判斷和運算的部份放上來
記錄過程的部份也沒有加上
可以自己試一下- int _tmain(int argc, _TCHAR* argv[])
- {
- char szData[128]; //準備運算的字串
- sp rintf(szData, "30 4 / 4 9 + 6 3 - * 4 * -"); //隨便一串資料
- char sp lit[4] = " ", *token; //分割字串需要的參數
- stack <float> stackData;
- float fTemp = 0, fFirst = 0, fSecond = 0;
- token = strtok(szData, sp lit);
- //將資料分割
- while(token != NULL)
- {
- //確認是否為運算符號
- if (IsOp erator(*token))
- {
- //確認stack裡的資料足夠
- if (stackData.size() < 2)
- {
- break;
- }
- //將資料從stack中讀出
- fSecond = stackData.top ();
- stackData.p op ();
- fFirst = stackData.top ();
- stackData.p op ();
- //進行運算
- fTemp = Calculate(fFirst, fSecond, *token);
- //將數字丟到stack中
- stackData.p ush(fTemp );
- }
- else
- {
- //將數字丟到stack中
- fTemp = atof(token);
- stackData.p ush(fTemp );
- }
- token = strtok(NULL, sp lit);
- }
- //輸入字串錯誤
- if (stackData.size() != 1)
- {}
- else
- {
- fTemp = stackData.top ();
- sp rintf(szData, "The answer is %f", fTemp );
- p rintf(szData);
- }
- system("p ause");
- return 0;
- }
複製代碼 ... |
|