自己寫的四則運算,可加括號

2021-06-12 05:43:32 字數 1197 閱讀 6059

#include

#include

using namespace std;

double getnumber(char*&p)

while(*p)

else

if(*p=='.')

else

break;}}

else

break;

}if(!falg)

return -(num+fnum);

return num+fnum;

}//這個函式讓p指向了下乙個

bool issign(char*&p,double&num)

else

return true;//返回的p指向當前的運算符號

}//利用這個計算

double complicate(double a,double b,char*p)

}//利用這個判斷兩個符號的優先級別

bool chose(char la,char rb)

//利用上面這個計算,當我們計算條件:遇到『)』或者p為空且符號陣列不為空時

//則呼叫下面這個函式

//作用,只進行一次括號內運算或者空

void complicateex(vector&sv,vector&nv)

else

if(chose(la,rb))//返回真,左邊為合適的

else//返回false,右邊為合適的,所以押回左邊

}else

p=rb;//假如不存在前一字元

///存在兩個字元情況,假如為la,則要彈出三個,假如是rb或者『(』則只用彈出兩個

double b=nv.back();

nv.pop_back();

double a=nv.back();

nv.pop_back();

double c;

if(!falg)

double num=complicate(a,b,&p);

nv.push_back(num);

if(!falg)}}

}//封裝乙個壓入函式

void push(char*&p,vector&sv,vector&nv)

else

if(issign(p,num))

else

nv.push_back(num);

}void main()

cout<}

含括號的四則運算

總體思路 需要用到棧,從中綴表示式到字尾表示式,再把字尾表示式轉化為結果,比如計算9 3 1 5 4 2,這個式子就叫做中綴表示式,然後我們需要把它轉化成字尾表答式,方法 將中綴表示式從左到右讀取,如果是數字,直接輸出到字尾表示式,如果是字元,則如果是右括號,把從棧頂開始到棧中左括號的字元輸出到字尾...

帶括號的四則運算

帶括號的四則運算 public class caculatordemo 帶括號的四則運算 param exp return public static double calckuohao string exp else 不帶括號的四則運算 param exp return public static...

C C 帶括號四則運算

1 首先從string讀入表示式,取出每乙個字元後裝入deque容器coll1中 原始碼在後面 2 從該容器取出每乙個元素,利用棧將中綴表示式轉換成字尾表示式 可參考 將字尾表示式裝入容器coll3中。3 最後從coll3中取出元素逐一處理,既使用逆波蘭式求值 如下圖 c 原始碼 可編譯並正常執行,...