可以進行10以上的加減乘除以及括號運算。
十一瘋了七天,趕緊補完了=。=
**如下:
#include #include #include #include #include #include using namespace std;
#define clr(a,b) memset(a,b,sizeof(a))
mapd; //字元到數字的對映,比較大小用
int cmp[7][7] = //優先順序比較,1為大於,0為等於,-1為小於。-2為空 , ,
, ,, //這裡最後乙個元素為空,因為(不可能與#比較 ,
};typedef struct data
data;
typedef struct stacknode //鏈棧
stacknode,*linkstack;
void stackinit(linkstack &s) //初始化棧
void welcome()
void stackpush(linkstack &s,data a) //壓入棧
bool isnum(char ch) //判斷是否為數字
void stacktop(linkstack s,data &t) //取棧頂元素
void stackpop(linkstack &s) //彈出棧頂元素
void stackclear(linkstack s)
int cal(int a,int b,char op)
}void solve(char *str) //計算表示式
i--; //返回最後乙個數字
t.num = num;
stackpush(snum,t); //把數字壓入棧
} else
}} stacktop(snum,t);
cout << t.num << endl;
stackclear(sop);
stackclear(snum);
}int main()
solve(str);
printf ("請輸入的表示式:\n");
} return 0;
}
運算表示式求值模板
表示式計算 使用方法 輸入合法的表示式,加減乘除,可以帶括號,用空格分開數字和符號,1為結束標誌,比如 2 5 3 1 注意 這是用來算具體答案的,不是轉化成字尾表示式輸出的,當然,思想是遞迴建立表示式樹,然後後序遍歷得逆波蘭式,然後用棧計算結果 模板 include include include...
表示式求值
程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...
表示式求值
既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...