发布网友 发布时间:2022-05-27 19:16
共1个回答
热心网友 时间:2023-11-21 22:35
main函数中:追答你在tc里运行的? 那可能看不到结果,其实已经输入了。为了看到输入和结果,
可以在getch之后加上一个putchar(c); 在main函数最后加上getch();
完整修改(太长,贴不不上,只贴了修改过的两个函数):
void ctpostexp(seqqueue *q)
{
seqstack os; //运算符栈
char c,t;
seqstack *s;
s=&os;initstack(s);//初始化栈
push(s,'#'); //压入栈底元素'#'
do //扫描中缀表达式
{
c=getch();
putchar(c);//显示输入的字符 ---------- 改动
switch(c)
{
case ' ':break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':enqueue(q,c);break;
case '(':push(s,c);break;
case ')':
case '#':
do {
t=pop(s);
if (t!='('&&t!='#') enqueue(q,t);
}
while(t!='('&&s->top!=-1);break;
case '+':
case '-':
case '*':
case '/':
while(priority(c)data[q->front++]); ----------------- 改动
printf("\n");//输出结果后,换行 ----------------- 改动
getch();//暂停,看结果 -------------- 改动
}