•問題描述: 輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值
注: 1、表示式只含 +, -, *, / 四則運算符,不含括號
2、表示式數值只包含個位整數(0-9),且不會出現0作為除數的情況
3、要考慮加減乘除按通常四則運算規定的計算優先順序
4、除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生
5、輸入字串一定是符合題意合法的表示式,其中只包括數字字元和四則運算符字元,除此之外不含其它任何字元,不會出現計算溢位情況
• 要求實現函式:
int calculate(int len,char *expstr)
【輸入】 int len: 字串長度;
char *expstr: 表示式字串;
【輸出】 無
【返回】 計算結果
• 示例
1) 輸入:char *expstr = 「1+4*5-8/3」
函式返回:19
2) 輸入:char *expstr = 「8/3*3」
函式返回:6
#include using namespace std;
int calculate(int len,char *expstr)
opstack;
opstack.top = -1;
int i=0;
int t=0; //當前字尾表示式長度
char ch = expstr[0];
while(ch!='\0')
opstack.top++;
opstack.op[opstack.top] = ch;
break;
case '*':
case '/':
while(opstack.top!=-1 && (opstack.op[opstack.top]=='*'||opstack.op[opstack.top]=='/'))
opstack.top++;
opstack.op[opstack.top] = ch;
break;
default:
expstr[t] = ch;
t++;
break;
} i++;
ch = expstr[i];
} while(opstack.top!=-1)
expstr[t] = '\0';
cout<
簡單四則運算
form1 如下 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using syst...
簡單四則運算
實現乙個簡單的四則混合運算。並且在計算100範圍以內。我實現的是兩位數之間的加減乘除混合運算,首先先定義幾個量。然後思考一下你所想要的計算方式,我在這裡就簡單的進行了數字的加減乘除,進行分為各種情況,這裡僅僅把四組的數字的混合運算一下,然後新增監聽並達到的要求。我的這個四則運算存在很多的不足,例如乘...
演算法(3)簡單四則運算
實現10以內四則運算 只包含數字,和小括號 四則運算使用 字尾表示式 演算法來計算,字尾表示式可以無需考慮運算子優先順序,直接從左至右依次計算。問題分解成2部分,一是將 中綴表示式 我們正常寫的四則運算字串樣式,即我們的輸入表示式 轉為 字尾表示式 二是使用 字尾表示式 求值。中綴表示式 轉 字尾表...