算術表示式

2021-07-03 16:09:34 字數 1411 閱讀 5137

#include #include #include #include #define maxzhansize 30

char stack[maxzhansize];//

char deleted(int *top);

void add(int *top,char item);

//逆波蘭數計算

#define element int

#define ni_maxzhansize 20

/+ - * / % out 數字

typedef enumprece;

int ni_stack[ni_maxzhansize];

void nisuanadd(int *top,element item);

element nisuandeleted(int *p);

int eval();

prece gettoken(char*symbol,int *n);

char c[30];結果字元

void main()

if(b[i] == ')' )//處理一對括號

deleted(&top);//除掉乙個'('

continue;

}if(a[ b[i] ] > a[ stack[top] ])

當前的符號優先順序大於棧頂的符號是放入,,否則彈出棧頂..........

else

add( &top, b[i] );//把當前的符號加進去

continue;}}

else是數字符號時

}while(top !=0 )/棧裡剩餘的符號輸出

c[j++]=' ';//這個空位用於終止

c[j++]='\0';補上空字元

printf(" ");

puts(c);

printf("\n%d",eval());

}void add(int *top,char item)

stack[++*top]=item;

}char deleted(int *top)

return stack[(*top)--];

}/逆波蘭數計算

int eval()

} token=gettoken(&symbol,&n);//下乙個

} return nisuandeleted(&top);

}prece gettoken(char*symbol,int *n)

}void nisuanadd(int *top,int item)

ni_stack[++*top]=item;

}int nisuandeleted(int *top)

return ni_stack[(*top)--];

}//

算術表示式

引用標頭檔案 include include include using namespace std typedef int elemtype const int stack init size 100 儲存空間的初始化分配量 const int stackincrement 10 儲存空間分配增量...

棧 算術表示式

將乙個算術表示式 即中綴形式 轉化成其字尾形式,並算出答案。include include include include include include using namespace std using namespace std bool isoperator char ch return f...

解析算術表示式

現有字串形式的算術表示式,求計算其值。string str1 2000 600 3 300 2 string str2 2000 600.389895334 2 300 2 6 100 求解方法如下 讀取公式,返回結果。param express 算術公式 return 結果字串 保留兩位小數 pu...