akoj-1162-计算表达式









计算表达式

Time Limit:1000MS  Memory Limit:65536K

Total Submit:14 Accepted:7

Description

对于一个不存在括号的表达式进行计算

Input

存在多种数据,每组数据一行,表达式不存在空格

Output

输出结果

Sample Input


6/2+3+34


Sample Output


18


Source

[Submit]  
[
Go Back]   [Status]  
[
Discuss]




#include <stdio.h>
#include <string.h>

/此题关键对数的处理,遇到加减就增加个变量储存 ,
遇到‘-’还需要把这个数转换为其相反数储存 /

int main()
{
char temp;
int x, a[200], i, sum = 0;
memset(a, 0, sizeof(a));
while (~scanf(“%d”, &x))
{
sum = 0;
i = 0;
a[i] = x;
while ( ~scanf(“%c”, &temp) && temp != ‘\n’ )
{
scanf(“%d”, &x);
switch(temp)
{
case ‘‘: a[i] = x; break;//遇到乘除就当成一个数处理
case ‘/‘: a[i] /= x; break;
case ‘+’: a[++i] = x; break;
case ‘-‘: a[++i] = -x; break;
}
}
for ( i; i>=0; i–) {
sum += a[i];
}
printf(“%d\n”, sum);
}
}


坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文作者: Fayne
  • 本文链接: 380.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!