条件限定:
1、 输入的四则运算式由'+','-','*','/'运算符及正整数组成;
2、 无需考虑特殊字符、表达式语法错误及除不尽的情况;
3、 无需考虑运算符的优先级,加减乘除优先级一样,仅按照自左至右的顺序依次计算;
4、 计算的中间数据及最终结果都不会超过65535;
5、 当遇到除数为0时,即刻返回当前已计算结果。
例:输入:2+1*4-2/5 输出:2
#include <stdio.h>
int result=0;
int i;
char s1[20];
void main()
{
printf("Please input str\n");
gets(s1);
result=s1[0]-'0';
for (i=1; i<20; i++)
{
switch (s1[i])
{
case'+': result+=s1[i+1]-'0'; break;
case'-': result-=s1[i+1]-'0'; break;
case'*': result=result*(s1[i+1]-'0'); break;
case'/':
if(s1[i+1]=='0')
{
printf("The result is %d\n", result);
return;
}
result=result/(s1[i+1]-'0'); break;
default: break;
}
}
printf("The result is %d\n", result);
}