#inlcude<stdio.h>
#include<math,h>
void Data_transformation(char input[], double sum[], int* pi, int* pj)
{int i = 0;char str[100] = "\0";while (input[*pi] != ' '){str[i] = input[*pi];(*pi)++;i++;}sum[*pj] = atof(str);(*pi)++;//切换至下一个操作数(*pj)++;//切换下一个索引
}
void Trigonometric(char input[], double sum[], int* pi, int* pj)
{if (input[*pi] == 'c'){sum[(*pj) - 1] = cos(sum[*(pj)-1]);}else{sum[(*pj) - 1] = sin(sum[*(pj)-1]);}(*pi) += 4;//切换至下一个操作数
}
void Calculator1(char input[100], double sum[100], int* pi, int* pj)
{switch (input[*pi]){case '+':sum[*(pj)-2] = sum[*(pj)-2] + sum[*(pj)-1];break;case '-':sum[*(pj)-2] = sum[*(pj)-2] - sum[*(pj)-1];break;case '*':sum[*(pj)-2] = sum[*(pj)-2] * sum[*(pj)-1];break;case '/':sum[*(pj)-2] = sum[*(pj)-2] / sum[*(pj)-1];break;}(*pi) += 2;//切换至下一个操作数(*pj)--;
}
int main()
{int i = 0;//作为input的索引int j = 0;//作为sum的索引char input[100] = "\0";double sum[100] = { 0 };gets(input);//输入数据while (input[i] != '\0'){//当input[i]不等于c/s/+/-/*//时进行数据转换,并切换至下一个操作数:后面的操作数只有三种情况,而且只有其中的一种情况成立if (input[i] != 'c' && input[i] != 's' && input[i] != '+' && input[i] != '-' && input[i] != '*' && input[i] != '/'){Data_transformation(input, sum, &i, &j);//数据类型转化,将字符型数据转化为浮点型}//当input[i]操作数为'c'||'s'时进行三角函数运算if (input[i] == 'c' || input[i] == 's'){//不需再进行数据类型转换Trigonometric(input, sum, &i, &j);//三角函数运算}else if (input[i] == '+' || input[i] == '-' || input[i] == '*' || input[i] == '/'){Calculator1(input, sum, &i, &j);}else{Data_transformation(input, sum, &i, &j);//数据类型转化,将字符型数据转化为浮点型}}printf("%lf", sum[j - 1]);return 0;
}

逆波兰表达式(含小数)、C语言相关推荐

  1. C语言实现逆波兰表达式计算函数(含浮点型、整型混合运算)

    基本实现思路: (1)逆波兰表达式运算: 按顺序遍历整个表达式 ,若遇到操作数,则入栈,若遇到操作符,则连续弹出两个操作数(有序)进行运算,并将结果压入栈中,当栈中只剩下一个操作数时,为最终运算结果. ...

  2. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)

    Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...

  3. 逆波兰表达式[栈 C 语言 实现]

    逆波兰表达式 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示 ...

  4. C语言栈的运用:后缀表达式(逆波兰表达式)计算器

    原理很简单,当操作者输入中每遇数字便将数字压入数栈,每遇符号便进行两次弹栈进行该符号的运算,运算结果再次压入数栈.唯一要注意的一点就是进行除法运算时需要判断除数是否为0. 头文件: /*Captain ...

  5. Bailian2694 逆波兰表达式(POJ NOI0202-1696, POJ NOI0303-1696)【文本】

    问题链接:POJ NOI0202-1696 逆波兰表达式. 问题链接:POJ NOI0303-1696 逆波兰表达式. 逆波兰表达式 描述 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式 ...

  6. CCF NOI1121 逆波兰表达式

    问题链接:CCF NOI1121 逆波兰表达式. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰 ...

  7. 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)

    递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...

  8. java 实现逆波兰表达式_逆波兰表达式java实现

    知道逆波兰表达式是一个偶然的情况,在用js的时候偶然发现了js中的一个eval函数,数学的表达式它竟然能直接解析出结果.后面通过查询才得知里面的核心是用的逆波兰表达式的算法.后面网上找了一下java的 ...

  9. 逆波兰表达式-----------红黑树--------mysql(DDL)----生产者消费者模式

    逆波兰表达式 二元运算符的表达式定义为:(操作数) + (运算符) + (操作数) ,其中操作数也可以为表达式. 在计算机中,根据运算符所在的不同位置来命名,表达式可以有如下三种不同的表示方法: 记表 ...

  10. 算法训练第十一天|力扣20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

    20. 有效的括号 题目链接:有效的括号 参考:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B ...

最新文章

  1. Oracle不加IP无法登录,Oracle 无法通过IP连接问题
  2. 这5个 AI 用例,转变了传统商务沟通
  3. 未来,中国空间站将成为怎样的“太空科研站”?
  4. ionic ion-refresher
  5. python 判断变量是否是 None 的三种写法
  6. 关于oracleblob字段的用到
  7. 判断一个int数组中的元素是否存在重复
  8. jzoj4672-Graph Coloring【图论,模拟】
  9. 浏览器里面看到的表单数据映射到python_python爬虫入门01:教你在 Chrome 浏览器轻松抓包...
  10. CODEVS 3269 混合背包
  11. poj 2502 Subway md自闭了,之后再看吧f**k
  12. Leetcode每日一题:129.sum-root-to-leaf-numbers(求根到叶子节点数字之和)
  13. 上车,在北京地铁10号线偶遇一下
  14. Keras——保存和提取模型
  15. 感谢大家对课程的关注和喜爱
  16. 苹果Mac电脑配置flutter开发环境
  17. 【2020年高被引学者】 陶哲轩 加州大学洛杉矶分校
  18. 互联网数据防泄密解决方案
  19. MySQL函数计算24小时平均浓度对应的IAQI和AQI
  20. 中国联通正式公布3G资费标准

热门文章

  1. Java异常泄露敏感信息_浅谈“异常信息泄露(应用程序错误)”
  2. 将列表类型的数据转换为树形数据
  3. ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)
  4. Windows + Linux 双系统的安装
  5. 一次搞定亚马逊 Used Sold as New 二手品申诉,速度 Get!
  6. 从贵价当道到平价之光,我们该如何看待全球智能穿戴市场之间的次元壁?
  7. 联通HG8347R WO-36光猫 当前用户不允许登录解决办法
  8. 个推mastersecret_个推 服务端 SDK
  9. PC浏览器播放m3u8
  10. 基于Wemos的wifi避障小车部分代码