• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 表示求值  

资源简介

利用栈实现算术表达式的求值,表达式中可包含加+、减(负) -、乘*、除/、 乘方^、括号( )运算符,操作数可以为浮点数。 可采用直接求中缀表达式的方法, 也可采用先转换成后缀表达式后再求值的方法(参看课件) 。 实现时需注意如下: ( 1)带小数点的数值生成 ( 理解整数数值的生成,小数部分的处理与之类似)。 ( 2)考虑负号的情况。负号与减号形式上一样,如何区分? • 输入的表达式串中第 1 个字符是’-’ – 可断定此’-’是负号 • 其余的’-’ – 若紧接在’(’之后的’-’可断定是负号 ( 3)负号的处理 • 方法 1:若已断定是负号,可先压入数值 0 进入操作数栈,如此,可 将负号看作减号。 • 方法 2: 若已断定是负号,则紧接其后的数字字符转换成数值后,要 将其对应的相反数(负数)压入操作数栈

资源截图

代码片段和文件信息

#include“Sqstack.h“
#include“other.h“

int main()
{
char str[100];
linkStack OPTR;                                     //创建运算符栈
    linkStack1 OPND;                                    //创建操作数
printf(“请输入表达式:\n“);
printf(“如:a+b*c#\n“);
scanf(“%s“&str);
printf(“表达式值:“);
printf(“%lf\n“Evluateexpression(strOPTROPND));   //输出最后计算结果
DestoryStack(OPTR);                                 //销毁栈
DestoryStack(OPND);
printf(“栈已成功销毁!\n“);
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         510  2015-10-29 19:53  表达式求值\expressionTestApp.cpp
     文件        1062  2015-11-03 10:45  表达式求值\Sqstack.cpp
     文件        1128  2015-10-29 19:41  表达式求值\Sqstack.h
     文件        2027  2015-12-26 16:23  表达式求值\other.cpp
     文件         270  2015-10-29 21:13  表达式求值\other.h
     文件         528  2015-10-29 19:07  表达式求值\表达式求值.dsw
     目录           0  2016-10-15 17:15  表达式求值\

评论

共有 条评论

相关资源