输入任意长度的连续加法表达式,回车结束; 表达式不含有空格; 如果表达式有其它运算符,则提前结束
输入:
1+2+3+4+5+6
输出:
21
输入:
1+2+3-6-7
输出:
6
输入任意长度的连续加法表达式,回车结束; 表达式不含有空格; 如果表达式有其它运算符,则提前结束
输入:
1+2+3+4+5+6
输出:
21
输入:
1+2+3-6-7
输出:
6
#include<stdio.h>
int cal(int st[], int k)
{
int sum = st[0];
for (int m = 1; m < k - 1; m++, m++)
{
if (st[m] == '+')
{
sum = sum + st[m + 1];
}
else
{
if (st[m] == '-')
{
sum = sum - st[m + 1];
}
}
}
return sum;
}
void main()
{
int sum1 = 0;
int i, c = 0;
char st1[200];
int st2[100];
scanf("%s", st1);
for (i = 0; st1[i] != '\0'; i++)
{
if (st1[i] > 47 && st1[i] < 58)
{
sum1 = (st1[i] - 48) + sum1 * 10;
st2[c] = sum1;
}
else
{
st2[++c] = st1[i];
sum1 = 0;
c++;
}
}
printf("%d\n", cal(st2, c + 1));
return;
}