8588 表示式求值

2021-10-05 15:29:38 字數 1037 閱讀 1242

思路:

輸入操作符優先順序表,定義好四則運算操作符的運算,注意使用標記法記錄是否為多位數運算,

注意:過程中發現cout很智慧型,我輸入5.1輸出5.1,輸入5.100輸出5.1,輸入5輸出5,這確實很奇特,自動完成捨棄多餘數字

本文原作者

#include

#include

#include

#include

using

namespace std;

stack<

char

> opter;

//運算子棧

stack<

double

> opval;

//運算元棧

intgetindex

(char theta)

//獲取theta所對應的索引

return index;

}char

getpriority

(char theta1,

char theta2)

//獲取theta1與theta2之間的優先順序,,

,,,,

,};int index1 =

getindex

(theta1)

;int index2 =

getindex

(theta2)

;return priority[index1]

[index2];}

double

calculate

(double b,

char theta,

double a)

//計算b theta a

}double

getanswer()

//表示式求值

else

c =getchar()

;}else}}

return opval.

top();

//返回opval棧頂元素的值

}int

main()

表示式求值

程式的說明見清華大學出版社 資料結構 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...

表示式求值

寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...