思路:輸入乙個字串,首先找到等號將其分為左右兩部分,左部分為變數,右部分為表示式,分別處理。
對於左邊部分,直接記錄下來變數名最後輸出即可。
右邊部分,是乙個算術表示式。首先將其由中綴表示式變為字尾表示式,然後對字尾表示式求值即可。在求值過程中會有一些變數,我們利用map儲存變數名對應的值即可。
參考資料:解析算術表示式[1]字尾式(逆波蘭式)
排程場演算法(中綴變字尾)
map的有關用法
存在問題:1.不能處理浮點數
2.不能處理負數
附上原始碼:
#include#include#include#includeusing namespace std;
bool compare(char a,char b)//比較a與b的優先順序
int operation(int x,int y,char z)
}int main()
else//將中值式變為字尾式
for(j=0;j='0'&&output[i][0]<='9')//若為數字存入棧
//ans[top_ans++] = output[i]-'0';
else //若為操作符進行操作
}my_map[whole_string[0]] = ans[0];
//cout << ans[0] << endl;
}cout << whole_string[0] << "=" << my_map[whole_string[0]] << endl ;
}return 0;
}
c 算式 計算器 用C 編寫計算器
零有點問題,而且目前只能做一些簡單的運算,平方 開根號 希望有大佬指正我的錯誤 感謝using system using system.collections.generic using system.componentmodel using system.data using system.dra...
C 日期計算器
define crt secure no warnings 1 include using namespace std class date 拷貝構造系統預設生成 date operator int day 日期 return tmp date operator int day 日期 date op...
C 房貸計算器
設計背景 設計思路 相關技術 功能鍵入相關資料,進行計算即可 示例 貸款本金 月利率 1 月利率 還款月數 1 月利率 還款月數 1 double yearnum z base util parser trytodouble this.cmbyear text,this.format double ...