[問題] 這個演算法要怎麼寫出來?

看板C_and_CPP (C/C++)作者 (丁丁)時間16年前 (2009/06/04 22:16), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/3 (看更多)
在試寫一個計算器的程式 例如輸入 12.5*(10/2.0)-9/3 自己心中的演算法為: 先讀字串 while(還沒讀完) { if(數字) 數字存入某double的陣列; if(為運算符號) 運算符號存入另一陣列; } 想了很久還是不曉得要怎麼區分'數字'和'運算符號' 請問這要怎麼寫啊?? 因為可能兩個運算符號連在一起 如*( -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.98.4

06/04 22:21, , 1F
利用ascii code 數字0~9=ascii 48~57
06/04 22:21, 1F

06/04 22:25, , 2F
或#include<ctype.h> 使用isdigit()
06/04 22:25, 2F

06/04 23:22, , 3F
就很出名的postfix/prefix notation
06/04 23:22, 3F

06/04 23:23, , 4F

06/05 03:25, , 5F
Reverse Polish Notation
06/05 03:25, 5F

06/05 03:28, , 6F
06/05 03:28, 6F
文章代碼(AID): #1A9zSweG (C_and_CPP)
文章代碼(AID): #1A9zSweG (C_and_CPP)