**弊端:
1.初始公式串的數值只能是0-9. 大於10的數字會有問題,可以改造mycopy函式
2. 計算順序是從左到右。 比如2*3*4是先算的2*3 再算的rusult*4. 貌似c語言是從又到左的計算順序
#include#include#include
#include
#include
#include
#include
using
namespace
std;
bool isoper(char
val)
//把char*字串拷貝到vector中
void mycopy(vector& container, char*v)
else
v++;
}}void prtvecs(const vector& values, const vector&pris)
cout
/列印公式串
for(auto val : values)
else
}cout
<}void prtvecs(const vector&values)
else
}cout
<加減乘除計算
int realcal(int first, char oper, int
second)
/*權重計算:
數字權重固定是0,()權重固定是-1;
加減的基礎權重是1 乘除的基礎權重是2 ;
()括號控制附加權重0, (:附加權重+2 ):附加權重-2
[之所以選擇附加權重為2舉例: 2*(2+3)中要先算加法. 加的基礎權重1+附加權重2得到3;乘的基礎權重2+附加權重0得到2.所以會先算加法]
加減乘除的最終權重為 他的基礎權重+當前附加權重
*///
values公式串, pris公式串對應的權重串[in out]
int calpri(const vector& values, vector&pris)
if (values[i] == '('
)
if (values[i] == ')'
)
if ((values[i] == '
+') || (values[i] == '-'
))
if ((values[i] == '
*') || (values[i] == '/'
))
}}//
移除公式串和權重串中的括號字元
void removeparentheses(vector& values, vector&pris)
}}/*
獲取可以計算的權重符的位置:
如果左邊操作符的權重》= 右邊操作符的權重,那麼左邊操作符的左右資料可以進行計算
如果左邊操作符的權重< 右邊操作符的權重,那麼需要右邊操作符和它的右邊操作符進行比較。
*/int getcalpos(const vector&pris)}}
return pris.size() - 2;}
void calresult(vector& values, vector&pris)
}int
main()
Open MP計算 的值
include include includestatic long num steps 100000 double step,pi void main pi step sum clock t t2 clock printf pi f,用時 d n pi,t2 t1 上述 使用了規約rduction...
計算a aa aaa aaaa aaaaa的值
思路分析 例如a 2,則計算2 22 222 2222 22222的值,可以運用for迴圈,計算五個數的值,則迴圈條件是五次。這個程式的關鍵的計算每一項,找出每一項之間的規律,程式完整 如下 define crt secure no warnings include include intmain ...
計算累進值
運用輔助日曆表,實現計算資本開支累進值類似的功能 輔助日曆表名稱為dbo.datepicker 例子資料如下圖 資料庫待處理表名稱為dbo.pl pm capitalexpenditure 資料如下圖 處理後的結果如下 具體的sql語句如下 with da as select year a.date...