表示式求值
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 ...