资源限制
时间限制:1.0s 内存限制:256.0MB
编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。
编写main函数测试该函数的正确性。
输入:
2+2345+913-3=
输出:
3257
#include<iostream>
//#include<bits/stdc++.h>
using namespace std;
int expression(char *s)
{
int flag = 1;//标识符号
int ans = 0;//记录表达式的值
for (int i = 0; s[i] != '\0'; i++)
{
int j;
int a = 0;
for (j = i; s[j] >= '0' && s[j] <= '9';j++)//求出一个整数
{
a = a * 10 + s[j] - '0';
}
ans += a * flag;
i = j;
if(s[i]=='+')//更改符号
flag = 1;
else if(s[i]=='-')
flag = -1;
}
return ans;
}
int main()
{
char s[100];
cin >> s;
cout << expression(s) << endl;
system("pause");
return 0;
}