表示式求值

2021-09-25 03:44:50 字數 1478 閱讀 2467

表示式求值

1、掌握棧的特性,能利用棧的特性進行實際應用。

2、掌握「運算子優先法」,並能利用該演算法對表示式求值。

1、求乙個表示式的值:輸入乙個包含「+」、「-」、「*」、「/」、正整數和圓括號的合法表示式,計算該表達方式的運算結果。

2、有能力的同學可以考慮運算元為多位浮點數的情況。

3、所寫源**程式設計風格良好,有詳細注釋。

4、程式執行介面良好。

#include#includeusing namespace std;

#define size  20

typedef struct stack1

st1;

typedef struct stack2

st2;

char a[7][7]=,,,

,,,,

};char b[7]=;

int search(char c)

return(i);

}char precede(char c1,char c2)

void  initstack1(stack1

*st)

void  initstack2(stack2

*st)

char gettop1(stack1 st)

float  gettop2(stack2 st)

void push1(stack1 *st,char c)

void push2(stack2 *st,float c)

char pop1(stack1 *st)

}float pop2(stack2 *st)} 

float switchctof(char num,int flag)

else

if(num[i]!='.')

}float weight=1;//整數字權值

for(i=ilen-1;i>=0;i--)

weight=(float)0.1;//小數字權值

for(i=0;i>num;

strcat(num,"#");

char figure[20];

int flen=0,flag=0;

for(int

i=0;num[i]!='\0';i++)

}else

float

x=gettop2(opnd);

if(precede(gettop1(optr),num[i])=='<')

else

if(precede(gettop1(optr),num[i])=='>')

if(precede(gettop1(optr),num[i])!='=')

push1(&optr,num[i]);

else

pop1(&optr);

}else

pop1(&optr);}}

cout<<"="

表示式求值

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