这个程序为什么只能计算一次

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:34:48
大家帮我看看这个程序,计算表达式。为什么计算第一次以后再输入任何表达式都会提示错误?

#define N 50
#include <stdio.h>
#include <ctype.h>
#include <string.h>
typedef struct{
int top;
double array[N];
}NumStack;
typedef struct{
int top;
char array[N];
}OpStack;
int Cint(char mychar){
return (mychar-48);
}
void PushNum(NumStack *numstack,double num){
numstack->top++;
numstack->array[numstack->top-1]=num;
}
void PopNum(NumStack *numstack,double *num){
*num=numstack->array[numstack->top-1];
numstack->top--;
}
void PushOp(OpStack *opstack,char op){
opstack->top++;
opstack->array[opstack->top-1]=op;
}
void PopOp(OpStack *opstack,char *op){
*op=opstack->array[opstack->top-1];
opstack->top--;
}
double Calc(double a,double b,char c){
double result;
switch(c){
case '+':result=a+b;bre

加上这句就可以了,再加个头文件stdlib.h
....
printf("The result is %f\n",numstack.array[numstack.top-1]);
setbuf(stdin,NULL); ///////////////////////
scanf("%d",&i);

是不是输入字母时出现,当你输入的是数字的时候就没有问题了吧。