/*
题目:有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值。
说明:1. 四则运算即加减乘除 + - / *
2. 该表达式中的数字只能是1位(数值范围0~9)
3.另若有不能整除的情况,按向下取整处理,eg: 8/3得出值为2。
例如:若有字符串"8+7*2-9/3",计算出其值为19。
*/
int calculate(int len, char *expstr)
{
//这里用两个数组,分别存储数字和操作符
int num[100];
int numlenth = 0;
char op[100];
int oplenth = 0;
//初始化第一个数字
num[0] = expstr[0] - '0';
numlenth++;
//利用循环先计算乘除法,把加减操作符和其他操作数入存入数组
for(int i = 1; i<= len-2 ; i=i+2)
{
if(expstr[i]=='+'||expstr[i]=='-')
{
num[numlenth] = expstr[i+1] - '0';
numlenth++;
op[oplenth] = expstr[i];
oplenth++;
}else
if(expstr[i]=='*')
{
num[numlenth-1] = num[numlenth-1] * (expstr[i+1] - '0');
}else
if(expstr[i]=='/')
{
num[numlenth-1] = num[numlenth-1] / (expstr[i+1] - '0');
}
}
int sum = num[0];
for(int i = 0; i< oplenth; i++)
{
if(op[i]=='+')
{
sum = sum + num[i+1];
}
if(op[i]=='-')
{
sum = sum - num[i+1];
}
}
return sum;
}