计算表达式的值(求解)

贵阳的乡巴佬 2004-08-11 04:57:28
随便输入一个表达式,

程序应该能判断表达式的正确性,

且计算机也表达式的结果.

...全文
225 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhangYv 2004-08-12
  • 打赏
  • 举报
回复
题外话是,这个问题问了无数次,都懒得回答了.
ZhangYv 2004-08-12
  • 打赏
  • 举报
回复
逆波兰算法,编译原理的东西.如果最后数值栈只有一个元素,它就是表达式的结果,否则该表达式非法.看看这里的http://blog.csdn.net/zhangyv/ 的链接.有代码自己找.
贵阳的乡巴佬 2004-08-12
  • 打赏
  • 举报
回复
作得了,

我还问,

造,

有点难度唉.
kenan2002 2004-08-12
  • 打赏
  • 举报
回复
看数据结构第三章
kenan2002 2004-08-12
  • 打赏
  • 举报
回复
你给的分数太低


用栈,先进后出。。。

你自己作不了哈哈个头阿
tangfulin 2004-08-12
  • 打赏
  • 举报
回复
建议先自己找找
贵阳的乡巴佬 2004-08-11
  • 打赏
  • 举报
回复
有人能解吗?

哈哈!
贵阳的乡巴佬 2004-08-11
  • 打赏
  • 举报
回复
能给出原码吗?
chuanerqingqing 2004-08-11
  • 打赏
  • 举报
回复
判断表达式的正确性,请看编译原理(词法分析);
计算表达式的结果,请看严蔚敏的数据结构;
附:具体的算法是,用两个栈结构,一个作为操作符栈,一个作为操作数栈。
然后逐个读入,(1)若为操作数则进操作数栈,
(2)若为操作符则进操作符栈
若优先级高于栈顶操作符,进栈,读入下一个字符;
若优先级低于栈顶操作符,将操作符退栈,再从操作数栈中弹出两个
操作数进行运算,将运算结果压入操作数栈
贵阳的乡巴佬 2004-08-11
  • 打赏
  • 举报
回复
给出原码.
贵阳的乡巴佬 2004-08-11
  • 打赏
  • 举报
回复
例如:
输入(3*2*(5+6)-3)*((5-2)*6)
就应该输出:1134
要求给出原码.
bm1408 2004-08-11
  • 打赏
  • 举报
回复
利用站来做就行了!

原理:

监控你的输入,比如说括号的皮配/表达式中不应该出现的符号等等!

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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