Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
Input
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
Output
Example Input
Example Output
Hint
Author#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX 100
char a[MAX];
int b[MAX];
int main()
{
int n,m,i,top = -1,num;
while(scanf("%s",a) != EOF){
n = strlen(a);
for(i = 0;i < n;i++)
{
if(a[i] >= '0'&&a[i] <= '9')
{
b[++top] = a[i]-'0';
}
else if(a[i] == '+')
{
num = b[top-1] + b[top];
b[--top] = num;
}
else if(a[i] == '-')
{
num = b[top-1] - b[top];
b[--top] = num;
}
else if(a[i] == '*')
{
num = b[top-1] * b[top];
b[--top] = num;
}
else if(a[i] == '/')
{
num = b[top-1] / b[top];
b[--top] = num;
}
else if(a[i] == '#')
{
break;
}
}
printf("%d\n",b[0]);}
return 0;
}