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

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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《十进制表达式四则运算》源代码

源代码: #include stdio.h #define MAXSIZE 16 typedef struct{ int data[MAXSIZE]; int top; int base; }seqstack; /* 顺序栈的定义*/ /*以下为函数声明*/ void InitStack(seqstack *); int Empty(seqstack *); void Push(seqstack *, int ); int Pop(seqstack *); int GetTop(seqstack *); int Operate(int ,char ,int ); char Proceed(char ,char ); int In(char ); int EvalExpres(void); /* 定义两个栈分别存放运算符和操作数*/ seqstack StackR,StackD; /*主函数*/ int main() { int v; char ch; while(1) { printf(\t本程序的功能为:用顺序栈实现整型算术表达式的求值\n); v = EvalExpres(); printf(The result is:%d,v); /*以下为程序控制*/ printf(\nInput q to quit and ENTER run again:); do{ scanf(%c,ch); if(ch == q || ch == Q) exit(0); }while(ch!=\n); system(cls); } return 0; } void InitStack(seqstack *s) { s-top = 0; s-base = 0; } /* 初始化栈*/ int Empty(seqstack *s) { if(s-top == s-base) return 1; else return 0; } /* 判断栈是否为空*/ void Push(seqstack *s, int x) { if(s-top == MAXSIZE) { printf(OVER FLOW!\n); exit(0); } else { s-data[s-top] = x; s-top++; } } /* 进栈 */ int Pop(seqstack *s) { int e; if(Empty(s)) { printf(Under flow!\n); return 0; } /* 下溢*/ else { s-top--; e = s-data[s-top]; return e; } } /* 出栈*/ int GetTop(seqstack *s) /*取栈顶元素*/ { if(Empty(s)) { printf(Under flow!\n); return 0; } else return s-data[s-top-1]; } int EvalExpres(void) /* 表达式求解函数*/ { int a,b,i=0,s=0; char c[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)

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档