收藏 分享(赏)

表达式求值源代码.doc

上传人:hskm5268 文档编号:4563367 上传时间:2019-01-02 格式:DOC 页数:8 大小:29KB
下载 相关 举报
表达式求值源代码.doc_第1页
第1页 / 共8页
表达式求值源代码.doc_第2页
第2页 / 共8页
表达式求值源代码.doc_第3页
第3页 / 共8页
表达式求值源代码.doc_第4页
第4页 / 共8页
表达式求值源代码.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、#include #include #include #include #include using namespace std;char Precede(char a, char b) /判断运算符优先级int i, j;char Table88 = ,+,-,*,/,(,),=,+,-,*,/,(, ,=, num_stack; /数字栈stack oper_stack; /运算符栈oper_stack.push(=); /将等号入栈到运算符栈while(si!= | oper_stack.top()!=) /对表达式 a 进行计算if(si=0 /从栈中弹出一个运算符进行计算oper_s

2、tack.pop();b = num_stack.top(); /弹出两个数字,注意顺序,先弹出的数是第二个操作数num_stack.pop();a = num_stack.top();num_stack.pop();if ( Calcu_temp(a, theta, b, r) ) /计算并判断是否有除数等于 0 的情况num_stack.push(r); /若正常,则将结果压入栈中elsereturn false; /出现除数为 0 的情况,返回错误信息break;result = num_stack.top(); /最后数字栈中的数即为表达式的最终结果return true;bool C

3、heck(char s) /检查表达式括号是否匹配int flag=0, i;for(i=0; si!=0; i+) if(si=()flag+;if(si=)flag-;if(flag)return false;elsereturn true;int main() int i, j;char s1210, s2210;double result;printf(“ 数据结构实训-表达式求值:n“);printf(“编程人员:桂林电子科技大学信息科技学院:n“);printf(“ 1151220114 章贵萍n“);printf(“请输入表达式:n“);while(gets(s1)!=NULL) /输入表达式if(strlen(s1)=1 for(i=0,j=0; s1i!=0; i+) /将表达式转换为规格化的表达式,并在末尾加上“=” ,保存在 s2 中if(s1i= )continue;s2j+ = s1i;s2j+ = =;s2j = 0;if(Check(s2) /检查括号是否匹配if(Calculate(s2, result) /计算并检查表达式中是否出现除数为 0 的情况printf(“%lfn“,result);elseprintf(“被除数为零,该表达式无效!n“);elseprintf(“该表达式括号不匹配!n“);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报