C 計算四則表示式的模板

2021-05-25 18:19:15 字數 1563 閱讀 8030

在9月8日那天我特意編寫給大家分享的,乙個很方便的c++函式模板,可以並且只可以計算含括號的四則表示式,只有乙個函式介面:int getexpvalue(_tstream& istrin, _t& nreturn)

引數解釋:

istrin: 乙個輸入流,可以是標準io流,可以是檔案流,也可以是串流

nreturn:用於接收計算結果的變數,計算所使用的型別由這個變數確定

返回值:

返回非0表示計算成功,0表示計算失敗有錯誤

程式**:

以下是引用片段:

namespace fy_exp

}} template 

/* _tstream: inputstream, _t: get return value

* return nonzero if get value successfully */

int getexpvalue(_tstream& istrin, _t& nreturn); //雨中飛燕之作

char csym[3] = "++";

int nlevel = 1, nerr = 0;

if(!(istrin>>t[1]))istrin.clear();

for(;;)else

if(!getexpvalue(istrin, t[2]))nlevel|=0x10;

else

break;

case ')':

break;

case '+':case '-':case '*':case '/':

break;

case ' ':case '/r':case '/n':case '/t':continue;

default: }

if(nlevel==0x100)break;

if(nlevel&0x10 || istrin>>t[2])

if(csym[1]=='*'||csym[1]=='/')

else

nlevel = 1;

} else istrin.clear();

} else

} if(csym[1])t[2]=0,nreturn=getexpvalue(t+1, csym[1]);

else nreturn=getexpvalue(t, csym[0]);

return nerr==-1?1:0; }}

函式模板使用示例:

在以上那段**的後面加上以下**:

以下是引用片段:

程式**:

#include

#include

#include

using namespace std;

int main(void)

else }

return 0; }

然後編譯執行就可以了。

建議使用vc7或vc更高版本,或者使用gnu c++編譯。

四則表示式

四則表示式求值,過了北大百練,放心用哈 北大百練url include include include include includeusing namespace std const int maxn 1000000 char str maxn 可以定義乙個字元變數,儲存c前的乙個字元,這樣就可以...

四則表示式求值

題目 openjudge 重慶十一中 寒假歡樂賽 總時間限制 1000ms 記憶體限制 65536kb 描述 求乙個可以帶括號的小學算術四則運算表示式的值 輸入一行,乙個四則運算表示式。表示乘法,表示除法 輸出一行,該表示式的值,保留小數點後面兩位 樣例輸入 輸入樣例1 3.4輸入樣例2 7 8.3...

生成四則表示式

能夠自動生成四則運算練習題 可以定製題目數量 使用者可以選擇運算子 使用者設定最大數 如十以內 百以內等 使用者選擇是否有括號 是否有小數 使用者選擇輸出方式 如輸出到檔案 印表機等 最好能提供圖形使用者介面 根據自己能力選做,以完成上述功能為主 經過我和我的夥伴商量我們決定如下 駕駛員 劉亞 本人...