早教吧作业答案频道 -->其他-->
表达式的求值这个程序在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里...的网友还看了以下:
容器中有某种酒精含量的酒精溶液,加入一杯水后酒精含量降为25%;再加入一杯纯酒精后酒精含量升为40 2020-04-06 …
使北京鸭在较短时间内肥育,为什么填喂的不是富含脂肪的饲料而是富含糖类的饲料?使北京鸭在较短时间内肥 2020-04-26 …
Teacher:WhenwasRomebuilt?Tom:Atnight.Teacher:Whot 2020-05-13 …
氧化物和含氧化合物这两者中,什么包含什么 2020-05-15 …
请问可乐铝罐的铝含量大概有多少呢我们要做一个铝含量测定实验,需要知道可乐铝罐铝的百分含量,大概就可 2020-05-16 …
1000元不含税的商品含税价怎么计算?1000元不含税,则应付1000*(1+6%)=1060元. 2020-05-22 …
苯与由单双键相间相连的六碳环是同种物质么?我做到一道题,是己烷上的羟基消去后成为单双键相间相连的六 2020-05-23 …
《中原我军解放南阳》中“西起九江(不含),东至江阴”,为什么“不含”不能去掉而且不能改成“东至江阴 2020-06-03 …
设二元一次方程解答甲种矿石含铁54%,乙种矿石含铁36%,取两种矿石若干吨,混合后得到含铁48%的 2020-06-05 …
某人暑假外出旅游,因天气炎热,连续饮用纯净水解渴,后来他感到四肢发冷、心跳加快、心慌,接着就昏迷过 2020-06-06 …