谁帮我看看这个c语言程序啊谢谢(高分求助)
#include<math.h>#include<stdio.h>#include<stdlib.h>#include<string>#include<iostream>...
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
#define MAX 1000
#include "Stack.h"
#define TRUE 1
#define FALSE 0
extern c;
PSegStack createEmptyStack_seq(int m)
{
PSeqStack pastack = (PSeqStack)malloc(sizeof(struct SeqStack));
if (pastack != NULL)
{
pastack->s = (DataType *)malloc(sizeof(DataType) * m);
if (pastack->s)
{
pastack->MAXNUM = m;
pastack->t = -1;
return (pastack);
}
else
free pastack;
}
printf("Out of space!\n");
return NULL;
}
int infixtoSuffix(const char * infix,char * suffix)
{
int state_int=FALSE;
char c,c2;
PSepStack ps=createEmptyStack_seq();
int i,j=0;
if(infix[0]=='\0')return FALSE;
for(i=0;infix[i]!='\0';i++)
c=infix[i];
switch(c)
{
case' ':case'\t':case'\n':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
break;
case'0':case'1':case'2':case'3':case'4':
case'5':case'6':case'7':case'8':case'9':
state_int=TRUE;
suffix[j++]=c;
break;
case'(':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
push_seq(ps,c);
break;
case')':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
c2=')';
while(!isEmptyStack_seq(ps))
{
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')
{break;}
suffix[j++]=c2;
}
if(c2!='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
break;
case'+':case'-':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
while(!isEmptyStack_seq(ps)){//栈不空时
c2=top_seq(ps);
if(c2=='+'||c2=='-'||c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
else break;
}
push_seq(ps,c);
break;
case'*':case'/':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
if(!isEmptyStack_sep(ps)){
c2=top_seq(ps);
if(c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}
}
push_seq(ps,c);
break;
default:
free(ps);
suffix[j++]='\0';
return FALSE;
}
}
if(state_int==TRUE)suffix[j++]=' ';
while(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')){
free(ps);
suffix[j++]='\0';
return FALSE;
}
suffix[j++]=c2;
}
free(ps);
suffix[j++]='\0';
return TRUE;
}
(上面的是程序,下面的是报错提示)
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : error C2146: syntax error : missing ';' before identifier 'createEmptyStack_seq'
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : error C2501: 'PSegStack' : missing storage-class or type specifiers
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : fatal error C1004: unexpected end of file found
(这个是报错)
哪位高人帮我看下是什么原因啊 展开
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
#define MAX 1000
#include "Stack.h"
#define TRUE 1
#define FALSE 0
extern c;
PSegStack createEmptyStack_seq(int m)
{
PSeqStack pastack = (PSeqStack)malloc(sizeof(struct SeqStack));
if (pastack != NULL)
{
pastack->s = (DataType *)malloc(sizeof(DataType) * m);
if (pastack->s)
{
pastack->MAXNUM = m;
pastack->t = -1;
return (pastack);
}
else
free pastack;
}
printf("Out of space!\n");
return NULL;
}
int infixtoSuffix(const char * infix,char * suffix)
{
int state_int=FALSE;
char c,c2;
PSepStack ps=createEmptyStack_seq();
int i,j=0;
if(infix[0]=='\0')return FALSE;
for(i=0;infix[i]!='\0';i++)
c=infix[i];
switch(c)
{
case' ':case'\t':case'\n':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
break;
case'0':case'1':case'2':case'3':case'4':
case'5':case'6':case'7':case'8':case'9':
state_int=TRUE;
suffix[j++]=c;
break;
case'(':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
push_seq(ps,c);
break;
case')':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
c2=')';
while(!isEmptyStack_seq(ps))
{
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')
{break;}
suffix[j++]=c2;
}
if(c2!='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
break;
case'+':case'-':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
while(!isEmptyStack_seq(ps)){//栈不空时
c2=top_seq(ps);
if(c2=='+'||c2=='-'||c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
else break;
}
push_seq(ps,c);
break;
case'*':case'/':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
if(!isEmptyStack_sep(ps)){
c2=top_seq(ps);
if(c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}
}
push_seq(ps,c);
break;
default:
free(ps);
suffix[j++]='\0';
return FALSE;
}
}
if(state_int==TRUE)suffix[j++]=' ';
while(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')){
free(ps);
suffix[j++]='\0';
return FALSE;
}
suffix[j++]=c2;
}
free(ps);
suffix[j++]='\0';
return TRUE;
}
(上面的是程序,下面的是报错提示)
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : error C2146: syntax error : missing ';' before identifier 'createEmptyStack_seq'
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : error C2501: 'PSegStack' : missing storage-class or type specifiers
C:\Users\yjj\Documents\working\数结\third\1.cpp(14) : fatal error C1004: unexpected end of file found
(这个是报错)
哪位高人帮我看下是什么原因啊 展开
4个回答
展开全部
晕死
你这个PSegStack结构体根本没有预先定义
肯定会报错啦
你这个PSegStack结构体根本没有预先定义
肯定会报错啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你有些函数和数据没写全,我帮着补上了,还有就是些细节上没注意:
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
#define MAX 1000
//#include "Stack.h"
#define TRUE 1
#define FALSE 0
extern c;
typedef char DataType; //!
struct Stack{ //!
DataType *s;
int t;
int MAXNUM;
};
typedef Stack * PSeqStack; //!
PSeqStack createEmptyStack_seq(int m)
{
PSeqStack pastack = (PSeqStack)malloc(sizeof(struct Stack)); //!
if (pastack != NULL)
{
pastack->s= (DataType *)malloc(sizeof(DataType) * m);
if (pastack->s)
{
pastack->MAXNUM = m;
pastack->t = -1;
return (pastack);
}
else
free (pastack); //!
}
printf("Out of space!\n");
return NULL;
}
void push_seq(PSeqStack ps,DataType ch) //!
{
ps->t++;
ps->s[ps->t]=ch;
}
bool isEmptyStack_seq(PSeqStack ps) //!
{
return ps->t==-1;
}
DataType top_seq(PSeqStack ps) //!
{
return ps->s[ps->t];
}
void pop_seq(PSeqStack ps) //!
{
if(ps->t!=-1)
ps->t--;
else return;
}
int infixtoSuffix(const char * infix,char * suffix)
{
int state_int=FALSE;
char c,c2;
PSeqStack ps=createEmptyStack_seq(MAX);
int i,j=0;
if(infix[0]=='\0')return FALSE;
for(i=0;infix[i]!='\0';i++)
{
c=infix[i];
switch(c)
{
case' ':case'\t':case'\n':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
break;
case'0':case'1':case'2':case'3':case'4':
case'5':case'6':case'7':case'8':case'9':
state_int=TRUE;
suffix[j++]=c;
break;
case'(':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
push_seq(ps,c);
break;
case')':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
c2=')';
while(!isEmptyStack_seq(ps))
{
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')
{break;}
suffix[j++]=c2;
}
if(c2!='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
break;
case'+':case'-':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
while(!isEmptyStack_seq(ps)){//Õ»²»¿Õʱ
c2=top_seq(ps);
if(c2=='+'||c2=='-'||c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}//!
else break;
}
push_seq(ps,c);
break;
case'*':case'/':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
if(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
if(c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}
}
push_seq(ps,c);
break;
default:
free(ps);
suffix[j++]='\0';
return FALSE;
}
}
if(state_int==TRUE)suffix[j++]=' ';
while(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
pop_seq(ps);
if(c2=='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
suffix[j++]=c2;
}
free(ps);
suffix[j++]='\0';
return TRUE;
}
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
#define MAX 1000
//#include "Stack.h"
#define TRUE 1
#define FALSE 0
extern c;
typedef char DataType; //!
struct Stack{ //!
DataType *s;
int t;
int MAXNUM;
};
typedef Stack * PSeqStack; //!
PSeqStack createEmptyStack_seq(int m)
{
PSeqStack pastack = (PSeqStack)malloc(sizeof(struct Stack)); //!
if (pastack != NULL)
{
pastack->s= (DataType *)malloc(sizeof(DataType) * m);
if (pastack->s)
{
pastack->MAXNUM = m;
pastack->t = -1;
return (pastack);
}
else
free (pastack); //!
}
printf("Out of space!\n");
return NULL;
}
void push_seq(PSeqStack ps,DataType ch) //!
{
ps->t++;
ps->s[ps->t]=ch;
}
bool isEmptyStack_seq(PSeqStack ps) //!
{
return ps->t==-1;
}
DataType top_seq(PSeqStack ps) //!
{
return ps->s[ps->t];
}
void pop_seq(PSeqStack ps) //!
{
if(ps->t!=-1)
ps->t--;
else return;
}
int infixtoSuffix(const char * infix,char * suffix)
{
int state_int=FALSE;
char c,c2;
PSeqStack ps=createEmptyStack_seq(MAX);
int i,j=0;
if(infix[0]=='\0')return FALSE;
for(i=0;infix[i]!='\0';i++)
{
c=infix[i];
switch(c)
{
case' ':case'\t':case'\n':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
break;
case'0':case'1':case'2':case'3':case'4':
case'5':case'6':case'7':case'8':case'9':
state_int=TRUE;
suffix[j++]=c;
break;
case'(':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
push_seq(ps,c);
break;
case')':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
c2=')';
while(!isEmptyStack_seq(ps))
{
c2=top_seq(ps);
pop_seq(ps);
if(c2=='(')
{break;}
suffix[j++]=c2;
}
if(c2!='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
break;
case'+':case'-':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
while(!isEmptyStack_seq(ps)){//Õ»²»¿Õʱ
c2=top_seq(ps);
if(c2=='+'||c2=='-'||c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}//!
else break;
}
push_seq(ps,c);
break;
case'*':case'/':
if(state_int==TRUE)suffix[j++]=' ';
state_int=FALSE;
if(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
if(c2=='*'||c2=='/'){
pop_seq(ps);
suffix[j++]=c2;
}
}
push_seq(ps,c);
break;
default:
free(ps);
suffix[j++]='\0';
return FALSE;
}
}
if(state_int==TRUE)suffix[j++]=' ';
while(!isEmptyStack_seq(ps)){
c2=top_seq(ps);
pop_seq(ps);
if(c2=='('){
free(ps);
suffix[j++]='\0';
return FALSE;
}
suffix[j++]=c2;
}
free(ps);
suffix[j++]='\0';
return TRUE;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询