编译时c++程序缺少头文件??
看我的程序吧,我什么头文件几乎都包括了,可是编译的时候居然还说缺少头文件?这是为什么?感激不尽#include<iostream.h>#include<stdlib.h>...
看我的程序吧,我什么头文件几乎都包括了,可是编译的时候居然还说缺少头文件?这是为什么?感激不尽
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>
#include <cstring>
#include <cstdio>
#include <vector>
#include <conio.h>
#include <stack>
#include <string>
#include <cstdlib>
#define stack_init_size 100;
#define stackincrement 10;
typedef struct
{
char *base;
char *top;
char stacksize;
}sqstack;
void initstack(sqstack s);//构造空栈s
{
s.base=(sqstack *)malloc(stack_init_size*sizeof(sqstack));
s.top=s.base;
s.stacksize=stack_init_size;
}
int stackempty(sqstack s);//若栈为空返回0,否则返回1
{
if(s.top==s.base)
return 0;
else
return 1;
}
void destroystack(sqstack s);//销毁栈s
{
free(s.base);
}
void clearstack(sqstack s);//清空栈s
{
s.top=s.base;
}
int stacklength(sqstack s);//返回s元素的个数
{
int i=s.top-s.base;
}
char gettop(sqstack s);//若栈不空,用e返回栈顶元素
{
char e;
if(s.top==s.base)
return error;
e=*(s.top-1);
return e;
}
void push(sqstack s,char e);//插入元素e为新的栈顶元素
{
if(s.top-s.base>=s.stacksize)
s.base=(sqstack *)realloc(s.base,(s.stacksize+stackincrement)*sizeof(sqstack));
s.top=s.base+s.stacksize;
*s.top++=e;
}
char pop(sqstack s,char e);//若栈不空,删除s的栈顶元素,用e返回其值
{
if(s.top==s.base)
return error;
e=*--s.top;
return e;
}
int in(char c)
{
if(c='+','-','*','/','(',')','*')
return 1;
else
return 0;
}
char main(void)
{
sqstack optr,opnd;
initstack(optr);
initstack(opnd);
push(optr,'#');
char t[1024],c;
int i=0;
cout<<"输入运算式:"<<endl;
cin>>t;
c=getchar();
while(c!='#')
{
if(!in(c))
{
push(opnd,c);
c=getchar();
}
else
switch(precede(gettop(optr),c))
{
case'<':
push(optr,c);
c=getchar();
break;
case'=':
pop(optr,c);
c=getchar();
break;
case'>':
char theta,a,b;
pop(optr,theta);
pop(opnd,b);
pop(opnd,a);
push(opnd,operate(a,theta,b));
break;
}
}
return gettop(opnd);
} 展开
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>
#include <cstring>
#include <cstdio>
#include <vector>
#include <conio.h>
#include <stack>
#include <string>
#include <cstdlib>
#define stack_init_size 100;
#define stackincrement 10;
typedef struct
{
char *base;
char *top;
char stacksize;
}sqstack;
void initstack(sqstack s);//构造空栈s
{
s.base=(sqstack *)malloc(stack_init_size*sizeof(sqstack));
s.top=s.base;
s.stacksize=stack_init_size;
}
int stackempty(sqstack s);//若栈为空返回0,否则返回1
{
if(s.top==s.base)
return 0;
else
return 1;
}
void destroystack(sqstack s);//销毁栈s
{
free(s.base);
}
void clearstack(sqstack s);//清空栈s
{
s.top=s.base;
}
int stacklength(sqstack s);//返回s元素的个数
{
int i=s.top-s.base;
}
char gettop(sqstack s);//若栈不空,用e返回栈顶元素
{
char e;
if(s.top==s.base)
return error;
e=*(s.top-1);
return e;
}
void push(sqstack s,char e);//插入元素e为新的栈顶元素
{
if(s.top-s.base>=s.stacksize)
s.base=(sqstack *)realloc(s.base,(s.stacksize+stackincrement)*sizeof(sqstack));
s.top=s.base+s.stacksize;
*s.top++=e;
}
char pop(sqstack s,char e);//若栈不空,删除s的栈顶元素,用e返回其值
{
if(s.top==s.base)
return error;
e=*--s.top;
return e;
}
int in(char c)
{
if(c='+','-','*','/','(',')','*')
return 1;
else
return 0;
}
char main(void)
{
sqstack optr,opnd;
initstack(optr);
initstack(opnd);
push(optr,'#');
char t[1024],c;
int i=0;
cout<<"输入运算式:"<<endl;
cin>>t;
c=getchar();
while(c!='#')
{
if(!in(c))
{
push(opnd,c);
c=getchar();
}
else
switch(precede(gettop(optr),c))
{
case'<':
push(optr,c);
c=getchar();
break;
case'=':
pop(optr,c);
c=getchar();
break;
case'>':
char theta,a,b;
pop(optr,theta);
pop(opnd,b);
pop(opnd,a);
push(opnd,operate(a,theta,b));
break;
}
}
return gettop(opnd);
} 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询