|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#include <ctype.h>
#define maxsize 50 //define 后面没有;
typedef double elemtype;
typedef struct
{
int top;
elemtype data[maxsize];
}stacklist;
initlist(stacklist *s)
{
s->top=-1;
return 0;
}
push(stacklist *s,elemtype e)
{
s->top++;
s->data[s->top]=e;
return true;
}
pop(stacklist *s,elemtype *e)
{
*e=s->data[s->top]; //忘记了*
s->top--;
return true;
}
main()
{
stacklist s;
initlist(&s);
char c;
char str[10];
int i=0;
double d,e;
printf("input:\n");
scanf("%c",&c);
while(c!='#')
{
while(isdigit(c)|| c=='.')
{
str[i++]=c;
str[i]='\0';
scanf("%c",&c);
if(c==' ') //少了一个=
{
i=0;
e=atof(str);
push(&s,e); //这里debug时无法下一步,直接卡住
break;
}
}
switch(c)
{
case '+':
pop(&s,&d);
pop(&s,&e);
push(&s,d+e);
break;
case '-':
pop(&s,&d);
pop(&s,&e);
push(&s,e-d);
break;
case '*':
pop(&s,&d);
pop(&s,&e);
push(&s,e*d);
break;
case '/':
pop(&s,&d);
pop(&s,&e);
if(d!=0)
{
push(&s,e/d);
break;
}
else
{
printf("除数不能为0");
return -1;
break;
}
default:
break;
}
}
pop(&s,&e);
printf("%f\n",e);
}
|
|