有关逆波兰计算器的程序,帮忙分析一下!!!!
计算器(1-2)*(4+5),用逆波兰计算机表示成12-45+*,逆波兰计算器可以用来说明外部变量的用法,程序用到栈的知识,还包含了四个文件。第一个文件main.c
#include <stdio.h>
#include <stdlib.h>
#define maxop 100
#define number '0'
int getop (char []);
void push (double f);
double pop (void);
int main (void)
{
int type;
double op2;
char s[maxop];
while ((type=getop(s))!='x')
{
switch(type)
{
case number:
push(atof(s));
break;
case '+':
push(pop()+pop());
getchar();
break;
case '*':
push(pop()*pop());
getchar();
break;
case '-':
op2=pop();
push(pop()-op2);
getchar();
break;
case '/':
op2=pop();
if(op2!=0)
push(pop()/op2);
else
printf("error:zero divisor \n");
getch();
break;
case '=':
printf("result is:\t%.8g\n",pop());
break;
default:
printf("error :unknow command %s\n",s);
break;
}
}
return 0;
}
错误提示说 红色部分出错,但是我改成getchar();之后又出现四个错误,帮忙分析一下,后面还有三个文件,一个一个来