《程序设计与算法(二)算法基础》《第二周 递归》逆波兰表达式

不羁的心 提交于 2019-11-28 18:50:47

C 库函数 double atof(const char *str) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。

声明

下面是 atof() 函数的声明。

double atof(const char *str)

参数

  • str -- 要转换为浮点数的字符串。

返回值

函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。

 

本题中“逆波兰表达式”的定义:
1)
一个数是一个逆波兰表达式,值为该数
2)
运算符 逆波兰表达式 逆波兰表达式 是逆波兰表达
式 值为两个逆波兰表达式的值运算的结果

 

样例输入
* + 11.0 12.0 + 24.0 35.0
样例输出
1357.000000
提示:
:(11.0+12.0)*(24.0+35.0)

#include<iostream>
#include<cstdio>
#include<cstdlib>

using namespace std;

double exp()
{
    char s[20];
    cin >> s; // 流操作符,读完地址偏移
    switch (s[0])
    {
    case '+':
        return exp() + exp();
    case '-':
        return exp() - exp();
    case '*':
        return exp() * exp();
    case '/':
        return exp() / exp();
    default:
        //return atof(s[0]);

        return atof(s);
    break;

    }
}

int main()
{
    printf("%lf", exp());
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!