百炼-2694-逆波兰表达式-C语言-递归

一道有趣的递归问题。

/********************************************
**文件名:百炼-2694
**Copyright (c) 2015-2025 OrdinaryCrazy
**创建人: OrdinaryCrazy
**日期:20170806
**描述:百炼-2694参考答案
**版本:1.0
*********************************************/
#include <stdio.h>
#include <stdlib.h>
/********************************************
根据逆波兰表达式的定义进行递归求解
当输入一个字符串时,有2种情况:
1,字符串是一个数字,则使用atof(char*)函数转化为浮点数输出
2,字符串是一个运算符,则对其后的两个表达式进行相应的运算,输出运算结果
还有atof函数的定义在stdlib.h里
*********************************************/
double solve(void)
{
    char a[10];
    scanf("%s",a);
    switch(a[0])
    {
        case '+' : return solve() + solve();
        case '-' : return solve() - solve();
        case '*' : return solve() * solve();
        case '/' : return solve() / solve();
        default : return atof(a);
    }
}

int main()
{
    printf("%f\n",solve());
    return 0;
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值