评估数学表达式

2024-03-13

我正在寻找一种可用于评估数学表达式的算法。我在 SO 上看到了一些类似的问题,但答案是 C#/Delphi 或 python 特定的。我需要用 C 语言编写算法:)

我试图解决的问题是给定一个用户输入,例如

3*(2*x + 1)/x

我可以计算 x 的任何值的表达式。

有什么算法可以做到这一点?如果您想推荐一个已经做到这一点的库,那么我更喜欢 C 库

谢谢


我向 Google 询问“递归下降表达式解析器”(我不怪你不知道要寻找什么)并发现通过递归下降解析表达式 http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm其中介绍了一些有用的解析技术。

另外,维基百科上的文章递归下降解析器 http://en.wikipedia.org/wiki/Recursive_descent_parser包括一个相当完整的 C 示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

评估数学表达式 的相关文章

随机推荐

  • NodeJs 程序完成后不退出

    抱歉这个菜鸟问题 我是 Javascript 初学者 我正在使用 NodeJs MySQL 包将我的节点应用程序连接到我的数据库 但是成功运行查询后 程序不会退出 它会永远留在那里 直到我手动终止它 我希望程序运行查询并退出程序 我正在使用
  • 在 READ COMMITTED 隔离级别中何时/什么锁被持有/释放

    我正在尝试了解 SQL Server 中的隔离 锁 我在 READ COMMITTED 隔离级别 默认 中有以下场景 我们有一张桌子 create table Transactions Tid int amt int with some r
  • 如何连接 AWS DynamoDB 中的表?

    我知道整个设计应该基于自然聚合 文档 但是 我正在考虑实现一个单独的本地化表 语言 键 文本 然后使用其他表中的键 但是 我找不到任何这样做的例子 您是对的 DynamoDB 并非设计为关系数据库 并且不支持联接操作 您可以将 Dynamo
  • 使用 python/pandas 的字典理解与 str.contains 进行部分字符串匹配

    我有一个数据框 其中有一列名为course names使用带有课程名称列表的映射字典 我希望在键中匹配我想要在值列中分配的值 import pandas as pd df pd DataFrame course name Phsyics M
  • 获取所选元素的外部 HTML

    我正在尝试使用 jQuery 获取所选对象的 HTML 我知道 html 功能 问题是我需要包含所选对象的 HTML 在本例中为表格行 其中 html 仅返回行内的单元格 我四处搜索 发现了一些非常 hackish 类型的方法来克隆对象 将
  • Python:linecache 没有按预期工作?

    你好 我有这个 python 脚本 我需要用它来遍历一些目录并提取这些目录中的一些文件中的一些信息 所以我有很多目录 每个目录中还有 5 个子目录 在这 5 个子目录中 每一个都有 3 个文本文件 一个是我忽略的 txt 另一个是我需要阅读
  • 将切片的所有项目添加到通道中

    在 Go 中 是否有比以下更惯用的方法将数组 切片的所有元素添加到通道中 ch make chan string values string lol cat lolcat go func for v range values ch lt v
  • 可执行文件和可重定位目标文件的疑问

    我写了一个简单的Hello World 程序 include
  • 数据库安全组只能与使用 API 版本的 VPC 数据库实例关联

    我有下面的代码在 aws 中创建 RDS 实例 import boto rds REGION us east 1 INSTANCE TYPE db t1 micro ID MySQL db instance database test2 U
  • 使用 AJAX 关闭 Bootstrap 的模式

    我使用的模式是Twitter 的 Bootstrap http getbootstrap com 2 3 2 javascript html modals您可以通过单击按钮或与标签不同的内容来关闭模式data dismiss modal 我
  • IntelliJ:Ubuntu/linux 如何从 shell 使用 IntelliJ 打开文件

    遵循这个问题 似乎可以在 MAC 上使用 IntelliJ 从 shell 打开文件 IntelliJ 如何从命令行打开现有 IntelliJ 中的文件 https stackoverflow com questions 2695820 i
  • 如何按列值对数据框进行排序?

    我对 python 和 pandas 数据框架比较陌生 所以也许我在这里错过了一些非常简单的东西 因此 我的数据框包含许多行和列 但最后最终设法仅从每一列中获取具有最大值的一行 我用这段代码来做到这一点 import pandas as p
  • 在 OS X 上构建 valgrind

    我试图在 macOS Sierra 版本 10 12 6 上安装 valgrind 运行 configure sh时 出现以下错误 检查受支持的 gcc 版本 配置为 prefix Library Developer CommandLine
  • Material React 分页,更改每页行数

    Material React 分页组件是否有页面大小选项 每页行数 我在列出的 API 中没有看到它 我知道 TablePagination 组件可以 但是常规组件似乎没有
  • 如何在 play (2.3) 框架内从 Java 控制器代码中的 String 变量构造 Html 对象

    I am just开始使用 play 框架 我试图了解 java 应用程序代码和基于 scala 的模板框架之间的交互 注意 到目前为止 我对 Scala 一无所知 除了它是另一种编译语言之外到 JVM 上的字节码 并且 Scala 和 J
  • 具有模糊背景的 C# 对话框窗体

    下午好 Just a simple question Is it possible to make a parent form blurry while you show a new dialog form in winforms if i
  • Azure Bot 通道注册,通道部分为空

    我在 Azure 门户上使用 机器人通道注册 服务时遇到问题 创建服务后 频道 部分不会加载 仅保留空白 Screenshot 有什么帮助吗 经过多次测试 我通过将Azure门户的语言和区域更改为英语 美国 解决了该问题
  • 如何清除服务总线主题订阅的消息

    只是想知道从服务总线主题的订阅中清除消息的最佳方法 即使通过 Portal Powershell 或 C 假设我们有一个包含 4 个订阅的主题 而我们只想清除其中一个订阅中的消息 我有一种感觉 唯一的方法可能是在 while 循环中阅读消息
  • 节点:Socket io require.resolve 不是一个函数吗?

    我很惊讶谷歌搜索没有给我任何结果 无论如何 这是我使用时的问题socket io 当我进一步检查时 是来自 socket io index js 源文件 第 28 行 导致了问题 var clientSource read require
  • 评估数学表达式

    我正在寻找一种可用于评估数学表达式的算法 我在 SO 上看到了一些类似的问题 但答案是 C Delphi 或 python 特定的 我需要用 C 语言编写算法 我试图解决的问题是给定一个用户输入 例如 3 2 x 1 x 我可以计算 x 的