計算該表示式值

2021-06-18 09:04:09 字數 866 閱讀 7070

/*

問題描述:輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值注

1、表示式只含+,-,*,/四則運算符,不含括號

2、表示式數值只包含個位整數(0-9),且不會出現0作為除數的情況

3、要考慮加減乘除按通常四則運算規定的計算優先順序

4、除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生

5、輸入字串一定是符合題意合法的表示式,其中只包括數字字元和四則運算符字元,

除此之外不含其它任何字元,不會出現計算溢位情況

*/

int calculate(int len,char *expstr)

; int head=0;

int tail=0;

char *str = expstr;

int res,opt1,opt2;

char buf,op,r[2];

#ifdef debug

printf("start\n");

#endif

while(*str != '\0')

else if(*str == '/')

else if(*str == '+'||*str == '-')else

}#ifdef debug

printf("queue = %s,head = %d,tail = %d\n",queue,head,tail);

#endif

res = 0;

while(head < tail)

else if(queue[head] == '-')

else

} return res;

}

計算表示式值

試題描述 字尾表示式是指運算子放在兩個運算物件之後,所有計算按運算子出現的順序,嚴格地從左到右進行。注意每個運算元之後都緊跟著乙個 如 3 5 2 7對應的字尾表示式為3.5.2.7.輸入乙個字尾表示式,求表示式的值。注意本題中只出現 三種運算子。輸入一行,乙個字尾表示式。輸出一行,乙個整數,表示字...

計算表示式值(字尾表示式) 棧

處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...

stack計算表示式的值

9.52 使用stack物件處理帶圓括號的表示式。遇到左圓括號時,將其標記下來。當你在乙個左括號之後 遇到右圓括號時,彈出stack物件中這兩邊括號之間的元素,直到遇到左括號,將左括號也一起彈出棧。接著在stack物件中壓入乙個值,用以表明這個用一對圓括號括起來的表示式已經被替換。程式如下 incl...