早教吧 育儿知识 作业答案 考试题库 百科 知识分享

在C语言中如何用栈检验一个算数表达式的正确假如我现在输入一个算数表达式(a+b),计算机在用栈计算之后,OPS和OVS里将不会有剩余的符号或字母,但我如果输入((a+b)的话,运算之后栈里就会有“

题目详情
在C语言中如何用栈检验一个算数表达式的正确
假如我现在输入一个算数表达式(a+b),计算机在用栈计算之后,OPS和OVS里将不会有剩余的符号或字母,但我如果输入((a+b)的话,运算之后栈里就会有“(”的剩余,从而可以检验出这个算数表达式的正确与否. 现在我假设运算符号有+,-,*,/ 元素全部用字母代替.那么现在((a+b)),这种算数表达式就是正确的,((a+u),a+-u,a*u))等此类算数表达式就是错误的. 请高手写一个C语言的程序,以检验一个算数表的式的正确与否. 小弟我以100分答谢最佳回答.
▼优质解答
答案和解析
给你一个完整的程序,自己按需要修改吧.这是我2001年使用过的一个段落.编译后,可以直接运行. 编译如下: // #include #include #include #define TTRUE 0 #define TFALSE 1 #define MY_BUF_SIZ 256 #define WORD_SIZ 32 int A=100; float B=200.002; double C=300.033; struct Variables{ char name[64]; int ty; //int--0,float--1,double--2 double val; }VarTable[]={ {"A",0,0.0}, {"B",1,0.0}, {"C",2,0.0} }; int VarTableLen = 3; int isTheVar(char *tv){ int i = 0; void setVarValue(int); for(i = 0;i'F'*/){ printf("Bad Var \n",expr[t].var); exit(TFALSE); } val_stk[++top] = atof(expr[t].var); } //printf("This version does not process [STR_TYPE]\n"); break; default: printf("ERROR! unknown var TYPE .\n",expr[t].ty); exit(0); } } printf("The Result is val_stk[%d]=%g\n",top,val_stk[top]); return val_stk[top]; } //getExpValue Over int main(int argc,char *argv[]){ if(argc
看了 在C语言中如何用栈检验一个算...的网友还看了以下:

阅读下面的《孟子》选段,回答问题。(6分)故将大有为之君,必有所不召之臣;欲有谋焉,则就之。其尊德  2020-06-17 …

ABC三个桶中各装有一些水.先将A桶中的三分之一的水倒给B桶,再将B桶里的五分之一的水倒给C桶,再  2020-06-27 …

下列各项中对作品故事情节的表述,不正确的两项是(5分)A.侍婢进汤,懿将口就之,汤流满襟,乃作哽噎  2020-07-16 …

by……表示在……之前时候的用法是不是就是看by后面的时间,如果是过去就用过去完成时,是将来的时间就  2020-10-30 …

如图所示,A、B两个正方体,它们的边长之比为2:1,密度之比为4:3,先将B放在水平桌面上,再将A叠  2020-11-08 …

在某一次有奖竞猜活动中,有一辆汽车藏在A、B、C三扇门中的某一扇门之后.主持人宣布,谁若猜中汽车在哪  2020-11-10 …

A、B、C、D、E五人小组分工合作解决一项要求20分钟完成的任务,但至完成任务时多用了2分钟.之后总  2020-12-01 …

在野外使用地图时,手持地图()A.将地图上的北方对准地面上的任意方向,就可将图上的事物与实际事物对应  2020-12-10 …

下列关于煤、石油和天然气的说法正确的是()A.煤的干馏就是将煤隔绝空气在高温使之分解,得到焦炭、煤焦  2020-12-24 …

将二次函数关系式配方为y=a(x+2a分之b)平方+4a分之4ac-b的平方在解决问题时怎么用这个代  2020-12-31 …