关于用C语言实现加,减,乘,除,sin,cos,tan,ctan,log等功能的计算器,请高手指教。

Danger2000 2004-10-19 08:49:26
如题,输入的表达式可以包含括号,请高手指点算法或者提供源程序,不胜感激。
...全文
1691 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzheng318 2004-10-19
  • 打赏
  • 举报
回复
http://www.vchelp.net/vchelp/last.asp?class_id=1
去看看!

做一个简单计算器,可以参考如下的思路:
不考虑括号的情况:
0、在按下等于号后开始计算;
1、按数学规则--先乘除后加减,将表达式处理分成两步:
1)先找出有乘除的位置,将乘除号左右两侧的数找出来,进行相应计算,其结果代替原来的位置进行递归循环运算,直至表达式中无乘除符号为止;
2)加减运算可参考乘除运算,但是必须考虑负数的情况。
Danger2000 2004-10-19
  • 打赏
  • 举报
回复
谢谢楼上诸位朋友,能不能提供详细点的算法,或者源码。谢谢。
sharkhuang 2004-10-19
  • 打赏
  • 举报
回复
math
newpuple 2004-10-19
  • 打赏
  • 举报
回复
输入的表达试就相当于将其转化成二叉树的形式,然后再根据遍历的形式将其存入栈。
其根本就是一个数据结构的问题。
qiuli 2004-10-19
  • 打赏
  • 举报
回复
还要源码,汗。问大家算法还好过。
lynnboy 2004-10-19
  • 打赏
  • 举报
回复
这个每本数据结构书上都有怎么处理表达式计算的基本程序框架。
jp1984 2004-10-19
  • 打赏
  • 举报
回复
inorder to postorder convert
classical application of stack
davidhua2000 2004-10-19
  • 打赏
  • 举报
回复
用swith() case语句写个也行啊。
case '+'
case '-'
case '*'
case '/'
你再在里面实现功能吧。这样感觉简单
daylove 2004-10-19
  • 打赏
  • 举报
回复
这个数据结构书上有吧,用一个栈来实现的,可以参考一下!
挺拔的劲松 2004-10-19
  • 打赏
  • 举报
回复
括号和运算符号的优先级可以用栈来操作,sin,cos,tan,ctan,log等功能可以利用C的系统函数,当然如果要做科学计算器,那就要扩展数位,相对麻烦的多,一般要用数组扩展数位,将乘除用加减转换计算。
kosuke 2004-10-19
  • 打赏
  • 举报
回复
我6年前上学的时候写过一个...
alongfly 2004-10-19
  • 打赏
  • 举报
回复
类似xuzheng318(forever C++)所说的,先遍历(,在遍历带函数的,然后是乘除,最后是加减。
你可以首先遍历表达式,分离出符号和数据
alongfly 2004-10-19
  • 打赏
  • 举报
回复
偶用c做过这样的程序,不过是在电子词典上运行的,输入一长窜表达式,按等号的时候得到结果,改改还是能在电脑上运行的。
manyroads 2004-10-19
  • 打赏
  • 举报
回复
建议看看编译原理,
里面有多种解决方案,
同时提供了伪代码,
只要看懂了,翻译过来就可以了。
提示,数字,运算符分别一个栈,然后按照一定的
规律出栈运算,结果入栈就可以了。
当表达式扫描一次后结果就出来了。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧