主题:求救啊 24个错误~~
typedef char SElemType;
#include<string.h>
#include<ctype.h>
#include<malloc.h>
#include<limits.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
char top;
int length;
}Stack;
void InitStack (Stack &S)
{
S.top = NULL;
S.length = 0;
}
void push(Stack &S,char e)
{
p=new LNode;
if(!p) exit(1);
p -> data = e;
p -> next = S.top;
S.top = p;
++S.length; /* 栈的长度增1*/
}
char pop(char &e,Stack &S) /*弹出栈顶的字符*/
{
if(!S.top)
return false;
else
{
e=S.top->data;
q=S.top;
S.top=S.top->next;
delete q;
return e;
}
main()
{ int result;
char str="(((2*(1+(8-4)))-8)/2)";
result=process(str);
printf("%d\n",result);
}
int process(char *str)
{
InitStack(&S1); /*放右括号子( */
InitStack(&S2); /*放整数*/
InitStack(&S3); /*放计算符*/
int i=0;
char temp;
for(i=0;str[i]!='\0';i++)
{
if (str[i]!=')')
{
if (str[i]=='(') push(S1,str[i]);
if (str[i]=='1'&&'2'&&'3'&&'4'&&'5'
&&'6'&&'7'&&'8'&&'9'&&'0')
push(&S2,(int)str[i]);
if (str[i]=='+' && '-' && '*' && '/') push(S3,str[i]);
else
{pop(right,S2);pop(left,S2);pop(operator,S3);
switch(operator)
{ char temp
case'+': temp = left + right;break;
case'-': temp = left - right;break;
case'*': temp = left * right;break;
case'/': temp = left / right;
}
Push(S2,temp);
}
return temp;
}
}
#include<string.h>
#include<ctype.h>
#include<malloc.h>
#include<limits.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
char top;
int length;
}Stack;
void InitStack (Stack &S)
{
S.top = NULL;
S.length = 0;
}
void push(Stack &S,char e)
{
p=new LNode;
if(!p) exit(1);
p -> data = e;
p -> next = S.top;
S.top = p;
++S.length; /* 栈的长度增1*/
}
char pop(char &e,Stack &S) /*弹出栈顶的字符*/
{
if(!S.top)
return false;
else
{
e=S.top->data;
q=S.top;
S.top=S.top->next;
delete q;
return e;
}
main()
{ int result;
char str="(((2*(1+(8-4)))-8)/2)";
result=process(str);
printf("%d\n",result);
}
int process(char *str)
{
InitStack(&S1); /*放右括号子( */
InitStack(&S2); /*放整数*/
InitStack(&S3); /*放计算符*/
int i=0;
char temp;
for(i=0;str[i]!='\0';i++)
{
if (str[i]!=')')
{
if (str[i]=='(') push(S1,str[i]);
if (str[i]=='1'&&'2'&&'3'&&'4'&&'5'
&&'6'&&'7'&&'8'&&'9'&&'0')
push(&S2,(int)str[i]);
if (str[i]=='+' && '-' && '*' && '/') push(S3,str[i]);
else
{pop(right,S2);pop(left,S2);pop(operator,S3);
switch(operator)
{ char temp
case'+': temp = left + right;break;
case'-': temp = left - right;break;
case'*': temp = left * right;break;
case'/': temp = left / right;
}
Push(S2,temp);
}
return temp;
}
}