早教吧作业答案频道 -->其他-->
表达式的求值这个程序在tc里有很多错误,在VC里有一个错误,不知道怎么改,就是关于#include"stack.h"/一直错误.#include#include"stack.h"/*包含一个堆栈数据结构*/#defineExpSize30intisp(charc){/*计算运
题目详情
表达式的求值
这个程序在tc里有很多错误,在VC里有一个错误,不知道怎么改,就是关于# include"stack.h"/一直错误.
# include
# include"stack.h"/*包含一个堆栈数据结构*/
#define ExpSize 30
int isp(char c)
{/*计算运算符c的栈内优先级*/
int priority;
switch (c)
{
case '(':priority=0;break;
case '+':
case '-':priority=5;break;
case '*':
case '/':priority=6;break;
case '#':priority=0;break;
}
return priority;
}
int icp(char c)
{/*计算运算符c的栈外优先级*/
int priority
switch(c)
{
case'(':priority=8;break;
case'+':
case'-':priority=5;break;
case'*':
case'/':priority=6;break;
case'#':priority=0;break;
}
return priority;
}
void InfixToPostfix(char exp[])
{
Stack s; int i; char ch,y;
CreateStack(&s,Stacksize);/*构造一个空栈*/
Push(&s,'#');/*栈底插入'#'*/
printf("\n The Postfix expression is :");
for(i=0, ch=exp[i];ch!='#';i++,ch=exp[i])
{
if(isdigit(ch)//isalpha(ch)printf("%c",ch);/*输出操作数ch*/
else if (ch==')')
for(StackTop(s,&y), Pop(&s);y!='(';StackTop(s,&y),Pop(&s))
printf("%c",y);/*输出栈中属于括号内的运算符*/
else
{
for(StackTop(s,&y);icp(ch)isp(y)*/
push(&s,ch);/*当前运算符ch进栈*/
}
}
while(!IsEmpty(S))
{/*输出栈中剩余运算符*/
StackTop(s,&y);Pop(&s);
if(y!='#')printf("%c",y);
}
}
void main()
{
char exp[ExpSize]={'6','/','(','4','-','2',')','+','3','*','2','#'};
InfixToPostfix(exp);
}
这个程序在tc里有很多错误,在VC里有一个错误,不知道怎么改,就是关于# include"stack.h"/一直错误.
# include
# include"stack.h"/*包含一个堆栈数据结构*/
#define ExpSize 30
int isp(char c)
{/*计算运算符c的栈内优先级*/
int priority;
switch (c)
{
case '(':priority=0;break;
case '+':
case '-':priority=5;break;
case '*':
case '/':priority=6;break;
case '#':priority=0;break;
}
return priority;
}
int icp(char c)
{/*计算运算符c的栈外优先级*/
int priority
switch(c)
{
case'(':priority=8;break;
case'+':
case'-':priority=5;break;
case'*':
case'/':priority=6;break;
case'#':priority=0;break;
}
return priority;
}
void InfixToPostfix(char exp[])
{
Stack s; int i; char ch,y;
CreateStack(&s,Stacksize);/*构造一个空栈*/
Push(&s,'#');/*栈底插入'#'*/
printf("\n The Postfix expression is :");
for(i=0, ch=exp[i];ch!='#';i++,ch=exp[i])
{
if(isdigit(ch)//isalpha(ch)printf("%c",ch);/*输出操作数ch*/
else if (ch==')')
for(StackTop(s,&y), Pop(&s);y!='(';StackTop(s,&y),Pop(&s))
printf("%c",y);/*输出栈中属于括号内的运算符*/
else
{
for(StackTop(s,&y);icp(ch)isp(y)*/
push(&s,ch);/*当前运算符ch进栈*/
}
}
while(!IsEmpty(S))
{/*输出栈中剩余运算符*/
StackTop(s,&y);Pop(&s);
if(y!='#')printf("%c",y);
}
}
void main()
{
char exp[ExpSize]={'6','/','(','4','-','2',')','+','3','*','2','#'};
InfixToPostfix(exp);
}
▼优质解答
答案和解析
源代码不全,要编译这个程序当前文件夹下首先得有stack.h这个头文件以及相应的代码
看了 表达式的求值这个程序在tc里...的网友还看了以下:
(汽化和液化)在日常的饮食中,常常做一些汤,一类汤食含油少(清汤),另一类汤食含油多,这两种汤食端 2020-05-16 …
微积分余式定理remaindertheorem.完全不懂怎么用.整系数多项式f(x)除以(x-a) 2020-06-10 …
元素R有多种氧化物,其中RO中含氧0.5333那么相对分子质量为76,含氧为0.6315的R的氧化 2020-06-14 …
要详细一个NH3分子含多少个H,含多少个N,一个NH3分子含多少个H,含多少个N,含多少个原子,则 2020-06-18 …
为什么氢含量多能量就多?脂肪H多O少,为什么氢的含量多能量就多? 2020-07-03 …
“薪”有两种含义,一是意指“工钱”,一是意指“柴火”.怎么会有两种不同的含义呢,这类汉字不少,但大 2020-07-05 …
单位质量的脂肪与糖类相比,其所含元素与耗氧量的特点是,前者()A.含H多,氧化时耗氧多,产水多B. 2020-07-12 …
肺动脉中血液成分是()A.含氧多,含养料少B.含氧多,含养料也多C.含氧少,含养料多D.含氧少,含养 2020-11-08 …
科学研究表明牛肉含有丰富的营养成分,其中蛋白质含量约占五分之一,脂肪含量约占五分五十分之一,那么三千 2020-11-29 …
从人和玉米细胞干重元素含量的比较中发现,玉米的含氧量远远高于人的含氧量,其原因是A.玉米含蛋白质多, 2020-12-02 …