早教吧作业答案频道 -->其他-->
表达式的求值这个程序在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里...的网友还看了以下:
MATLAB设计Jacobi迭代法运行错误,设计函数:function [x,k]=jacobi_ 2020-05-16 …
选择元音字母在单词中发音不同的一项.1;A:h(a)nd;B:f(a)ce;C:(a)pple.2 2020-06-17 …
已经很多年没有接触过了,已知直线I过原点,抛物线C的顶点在原点,焦点在x轴的正半轴上,若A(-1, 2020-06-27 …
(斐波那契数列)谁能解释一下这个程序中的“c[i]:=c[i]+a[i]+b[i];varn,i, 2020-07-23 …
SQLSEVER习题请教声明了变量:declare@iint,@cchar(4),现在为@i赋值1 2020-07-23 …
在图4所示的四个电路中,电源电压都相同且不变,电阻R的阻值均相等.闭合电键S,四个电路中电流表的示数 2020-11-01 …
问个C语言,不明白啊题目:字符数组采用单个字符(%c)方式输入,并将它逆序输出。#include"s 2020-12-02 …
llongyear=1970+today/1000/60/60/24/365;System.out. 2020-12-28 …
大哥再问个问题定义变量如下:charc=‘w‘;inti=8;longL=15;floatf=8.9 2020-12-31 …
定义变量如下:charc=‘w‘;inti=8;longL=15;floatf=8.9f;以下赋值语 2021-02-18 …