算法训练 前缀表达式

来源:互联网 发布:淘宝哪家毛边纸好 编辑:程序博客网 时间:2024/06/08 07:10
问题描述
  编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
  输入格式:输入只有一行,即一个前缀表达式字符串。
  输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。
  输入输出样例
样例输入
+ 5 2
样例输出

7

#include<iostream>#include<string>#include<stack>#include<string.h>#include<stdlib.h>#include<cstdio>#include<math.h>using namespace std;int ok;char a[20];double fan(){    if(ok!=0)        scanf("%s",a);    ok=1;    switch(a[0])    {        case'+':return fan()+fan();        case '-':return fan()-fan();        case'*':return fan()*fan();        case'/':return fan()/fan();        default:return atof(a);    }}int main(){    int ans;    scanf("%s",a);         ok=0;        ans=fan();        printf("%d\n",ans);    return 0;    }        


0 0