8、奇怪的表达式求值--2017网易春招

[编程题] 奇怪的表达式求值
时间限制:1秒
空间限制:32768K
常规的表达式求值,我们都会根据计算的优先级来计算。比如*/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少 
输入描述:
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示。
 
输出描述:
输出一个数,即表达式的值
 
输入例子:
3+5*7
 
输出例子:
56
 
解题思路:本题就按照输入的字符顺序进行计算即可,result = int(a[0] - '0'),然后定义字符tmp存储计算符,执行相应的运算,直到最后一个,每次计算完i++,目的跳过取的那个数字
注意点:注意字符要转成数字,否则结果不对。例int(a[0] - '0')
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     string a;
 8     while(cin>>a)
 9     {
10         int n = a.size();
11         int result = int(a[0] - '0');
12 
13         for(int i=1;i<n;i++)
14         {
15             char tmp = a[i];
16             if(tmp == '+')
17             {
18                 result += int(a[i+1] - '0');
19             }
20             else if(tmp == '-')
21             {
22                 result -= int(a[i+1] - '0');
23             }
24             else if(tmp == '*')
25             {
26                 result *= int(a[i+1] - '0');
27             }
28             else
29             {
30                 result /= int(a[i+1] - '0');
31             }
32             i++;
33         }
34         cout<<result<<endl;
35 
36     }
37     return 0;
38 }
原文地址:https://www.cnblogs.com/qqky/p/6922736.html