没有合适的资源?快使用搜索试试~ 我知道了~
本代码为表达式计算,表达式包含括号和四则运算运算符。结果保留小数点后两位。 样例输入: (5-4)/(5.5-6) 样例输出: -2.00
资源推荐
资源详情
资源评论
#include<stdio.h>
#include<stdlib.h>
#define add 43 //运算符加号'+'的ASCII码
#define subs 45 //运算符减号'-'的ASCII码
#define mult 42 //运算符乘号'*'的ASCII码
#define div 47
#define MAXSIZE 100
#define N 10
union data{
char c[MAXSIZE];
double n[MAXSIZE];
};//定义字符型的栈和浮点数类型的,用联合体
typedef struct{
data stkdata;//联合体类型的堆栈
int top; //栈顶
}STKzone;
typedef STKzone *STK;
typedef enum{ok,error}status;
STKzone expSTKzone;
STK initSTK(STKzone *stk){ //执行栈初始化,建栈指针
STK p;
p=stk;
p->top=-1;
return p;
}
status push(char &term,STK pstk){ //将一结构型数据送入栈中
if(pstk->top==MAXSIZE)
return error;
(pstk->top)++; //栈满,进栈失败
pstk->stkdata.c[pstk->top]=term; //栈顶指针移动
#include<stdlib.h>
#define add 43 //运算符加号'+'的ASCII码
#define subs 45 //运算符减号'-'的ASCII码
#define mult 42 //运算符乘号'*'的ASCII码
#define div 47
#define MAXSIZE 100
#define N 10
union data{
char c[MAXSIZE];
double n[MAXSIZE];
};//定义字符型的栈和浮点数类型的,用联合体
typedef struct{
data stkdata;//联合体类型的堆栈
int top; //栈顶
}STKzone;
typedef STKzone *STK;
typedef enum{ok,error}status;
STKzone expSTKzone;
STK initSTK(STKzone *stk){ //执行栈初始化,建栈指针
STK p;
p=stk;
p->top=-1;
return p;
}
status push(char &term,STK pstk){ //将一结构型数据送入栈中
if(pstk->top==MAXSIZE)
return error;
(pstk->top)++; //栈满,进栈失败
pstk->stkdata.c[pstk->top]=term; //栈顶指针移动
return ok;
}//push
int emptySTK(STK pstk){ //判断栈是否为空栈
return(pstk->top==-1);
}
status pop(char &pdata, STK pstk){ //从栈中取出一结构型数据
pdata=pstk->stkdata.c[pstk->top];
(pstk->top)--;
return ok;
}
status pipei(STK expSTK)//-------------------------------------------匹配中缀表达式
{
char c;
char pdata;
printf("\n输入表达式:");
while((c=getchar())!='\n'){//遍历表达式,只看括号
if((c=='(')||(c=='[')||(c=='{')){//遇到左括号进栈
if(push(c,expSTK)==error){
printf("\n表达式太长\n");
exit(0);}
}
else if((c==')')||(c==']')||(c=='}'))//遇到右括号
{
if(emptySTK(expSTK))//如果栈顶为空
{printf("右括号多,请重新输入\n");return error;}
else {//不空就匹配右括号
剩余7页未读,继续阅读
资源评论
Bazinga233....
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功