//四則表示式求值,過了北大百練,放心用哈//北大百練url:
#include#include#include#include#includeusing namespace std;
const int maxn=1000000;
char str[maxn];
//可以定義乙個字元變數,儲存c前的乙個字元,這樣就可以解決負數的問題
//但是在函式內部有輸入,會嚴重降低函式的復用性,所以我要一次性都完
//注意中文括號和英文括號不同;*(++c)就相當於c=getchar();
//壓入時,記錄乙個有效字元,便於判斷-是否是負號
int precede(char opt1,char opt2)
case '*':
case '/': return(opt2=='('?-1:1);
case '(': if(opt2==')')return 0;
return(opt2=='#'?-2:-1);
case ')': return(opt2=='('?-2:1);
case '#': if(opt2=='#')return 0;
return(opt2=='('?-2:-1);
default: return -2;//正常操作不會有預設
} }
double operate(double a,char opt,double b)
} double evaluateexpression(char *c)//招待減號
while('0'<=*c&&*c<='9')
if(*c=='.')
} pre=*(c-1);
opnd.push(num*flag+small);//運算數進棧
}else
switch(precede(optr.top(),*c))
default: if(!strchr("#=\n\0\377",*c)) *(++c);//執行預設說明,說明輸入有問題,繼續讀入//也可以case -2:
}} return opnd.top();
}void getexpression(char *p)
int main(int argc,char *argv)
return 0;
}
四則表示式求值
題目 openjudge 重慶十一中 寒假歡樂賽 總時間限制 1000ms 記憶體限制 65536kb 描述 求乙個可以帶括號的小學算術四則運算表示式的值 輸入一行,乙個四則運算表示式。表示乘法,表示除法 輸出一行,該表示式的值,保留小數點後面兩位 樣例輸入 輸入樣例1 3.4輸入樣例2 7 8.3...
生成四則表示式
能夠自動生成四則運算練習題 可以定製題目數量 使用者可以選擇運算子 使用者設定最大數 如十以內 百以內等 使用者選擇是否有括號 是否有小數 使用者選擇輸出方式 如輸出到檔案 印表機等 最好能提供圖形使用者介面 根據自己能力選做,以完成上述功能為主 經過我和我的夥伴商量我們決定如下 駕駛員 劉亞 本人...
四則表示式實現原理
首先是將中綴表示式轉化為字尾表示式 在計算機中計算乙個字尾表示式的值要比計算乙個中綴表示式的值簡單的多 實現轉換的基本步驟如下 1.初始化乙個運算子棧。2.從算數表示式輸入的字串中依次從左向右每次讀取乙個字元。3.如果當前字元是運算元,則直接填寫到字尾表示式。4.如果當前字元是 左括號,將其壓入運算...