下载此文档

《十进制表达式四则运算》源代码.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
#include<>#defineMAXSIZE16typedefstruct{intdata[MAXSIZE];inttop;intbase;}seqstack;/*顺序栈的定义*//*以下为函数声明*/voidInitStack(seqstack*);intEmpty(seqstack*);voidPush(seqstack*,int);intPop(seqstack*);intGetTop(seqstack*);intOperate(int,char,int);charProceed(char,char);intIn(char);intEvalExpres(void);/*定义两个栈分别存放运算符和操作数*/seqstackStackR,StackD;/*主函数*/intmain(){intv;charch;while(1){printf("\t本程序的功能为:用顺序栈实现整型算术表达式的求值\n");v=EvalExpres();printf("Theresultis:%d",v);/*以下为程序控制*/printf("\nInput'q'toquitandENTERrunagain:");do{scanf("%c",&ch);if(ch=='q'||ch=='Q')exit(0);}while(ch!='\n');system("cls");}return0;}voidInitStack(seqstack*s){s->top=0;s->base=0;}/*初始化栈*/intEmpty(seqstack*s){if(s->top==s->base)return1;elsereturn0;}/*判断栈是否为空*/voidPush(seqstack*s,intx){if(s->top==MAXSIZE){printf("OVERFLOW!\n");exit(0);}else{s->data[s->top]=x;s->top++;}}/*进栈*/intPop(seqstack*s){inte;if(Empty(s)){printf("Underflow!\n");return0;}/*下溢*/else{s->top--;e=s->data[s->top];returne;}}/*出栈*/intGetTop(seqstack*s)/*取栈顶元素*/{if(Empty(s)){printf("Underflow!\n");return0;}elsereturns->data[s->top-1];}intEvalExpres(void)/*表达式求解函数*/{inta,b,i=0,s=0;charc[80],r;InitStack(&StackR);Push(&StackR,'#');InitStack(&StackD);printf("请输入表达式并以‘#’结束:");gets(c);while(c[i]!='#'||GetTop(&StackR)!='#'){if(!In(c[i]))/*判断读入的字符不是运算符是则进栈*/{if(c[i]>='0'&&c[i]<='9'){s+=c[i]-'0';while(!In(c[++i]))/*此处实现的功能为当输入的数字为多位数时*/{s*=10;s+=c[i]-'0';}Push(&Sta

《十进制表达式四则运算》源代码 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人tmm958758
  • 文件大小30 KB
  • 时间2019-05-19