- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算术表达式求值(小数)
#include malloc.h
#include sstream
#include iostream.h
#define STACK_INIT_SIZE 100
typedef double SElemType;
typedef struct{
SElemType *base;//栈底指针
SElemType *top;//栈顶指针
double stacksize;
}SqStack;
double InitStack(SqStack S) //初始堆栈
{
S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return 1;
}
SElemType GetTop(SqStack S) //获取顶部元素
{
if(S.top==S.base) return 0;
SElemType e=*(S.top-1);
return e;
}
double Push(SqStack S,SElemType e) //压栈
{
*S.top++=e;
return 1;
}
double Pop(SqStack S,SElemType e) //出栈
{
if(S.top==S.base) return 0;
e=*--S.top;
return 1;
}
//double ClearStack(SqStack S) //清空栈
//{
// S.top=S.base;
// S.stacksize=STACK_INIT_SIZE;
// return 1;
//}
//double StackEmpty(SqStack S) //判断栈是否为空
//{
// if(S.top==S.base) return 1;
// return 0;
//}
//////////////////////////////////////////////////
char Preced(char t1,char t2);//声明
double Operate(double a, char theta, double b);
int In(char *p)// 应在前面有定义typedef char SElemType;
{ // 判断c是否为运算符
switch(*p)
{case+:return 1;
case-:return 1;
case*:return 1;
case/:return 1;
case(:return 1;
case):return 1;
case#:return 1;
default:return 0;
}
}
double EvaluateExpression(char *p){
//表达式求值,入口:表达式串,出口:计算结果值
double z;
double a,b;//为方便计算栈中弹出的两个数的结果
double k; //计算小数点时用来记位置
double theta;
char bijiao;
SqStack S1; //S1存数据,
SqStack S2; //S2存运算符
InitStack(S1);
InitStack(S2);
Push(S2,#);
while(*p!=#||GetTop(S2)!=#){
if(!In(p)){//读输入的数据,进入数据
z=0;
if(*p=0*p=9*p!=.){ //表达式中的数值可能不只一位数,求数值的小数点前面的数据
z=z*10+*p-48;
p++;
}//if
if(*p==.){//假如遇到小数点时,进入下一个循环
k=0.1;p++;
while(*p=0*p=9){//将小数点后的数据加入数值中
z+=(*p-48)*k;
您可能关注的文档
- 电子信息外文翻译成品.doc
- 电子技术应用专业企业需求调研方案.doc
- 电工电子学(自测验题).doc
- 电影the day after tomorrow《后天》剧本中英文对照完整版.doc
- 电工基础6 低压电器(ppt).ppt
- 电感耦合等离子体原子发射光谱法测定纯银中镉_铋_铁_铅_锑_钯_硒_碲.docx
- 电梯施工方案编写规范(三水范本)西奥.doc
- 电火花沉积表面处理技术.pptx
- 电能质量国家标准5 三相电压不平衡标准.doc
- 电站轴流式风机的失速喘振与防治_-1454568554.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)