2017 5 6 表示式的值 思考記錄

2021-07-31 17:00:27 字數 835 閱讀 4457

這個題嚴重不符普及組的身份、、雖然是模擬,但如果想不清楚是很難入手的

首先判斷哪個位置有數,肯定先找運算子、、

(+   :  +號前一定有數    

)+ :  +號前一定沒有數

+ +:  +號前一定有數

* +:  +號前一定有數

所以只要+號前不是)就有數

而且要考慮運算子後面的,就需要對右括號進行同「+」的處理,不同的是這個右括號要一直推到左括號

用運算子優先順序的方法建立兩個棧處理運算::能放就放,如果+號前是*號就一直把*法做完、

碼:

#include#includeusing namespace std;

int n,i,shucnt,fucnt;

char ch[100006],fu[100006];

struct oo

zhan[100006];

int main()

ch[0]='(';

ch[++n]=')';

for(i=0;i<=n;i++)

while(fu[fucnt]=='*')

++fucnt;

fu[fucnt]='+';

}if(ch[i]=='*') }

if(ch[i]==')')

while(fu[fucnt]!='(')

else

fucnt--;

} fucnt--;

}if(ch[i]=='(')++fucnt,fu[fucnt]='(';

} printf("%d",zhan[shucnt].ling%10007);

}

表示式的值

乙個由1到n n 3,4,5.9 的數字組成的遞增序列 1,2,3,4.n。請在數列中插入 表示加法,表示減法,表示連線兩個數 比如1 2 3 就等於1 23 按照這樣的方法將每一對數字組合在一起。計算該表示式是否為0,你寫乙個程式找出所有產生和為零的長度為n的數列。7 1 2 3 4 5 6 7 ...

表示式的值

求乙個包含 四則運算符號和數字的表示式的值,郭煒老師的 講的好好啊。為了自己以後還能反覆看懂學習,我加了一堆備註。include include include includeusing namespace std int factor value 宣告函式 int term value int e...

中綴表示式轉字尾表示式 求表示式的值

中綴轉字尾需要遵守以下規則 1 運算元 直接輸出 2 直接入棧 3 將 以前的直接輸出,並將 出棧 不輸出 4 運算子 將優先順序不小於該運算子的操作符出棧,最後將該運算子入棧 5 最後將棧中的元素依次彈出 6 優先順序 大於 大於 class intosuf if op i equals if o...