回楼主你在头部加上#include
********************************************
#include
#include
#define m 20
typedef char ElemType;
typedef struct //栈类型定义
{
ElemType stack[m]; //数据域为字符型 //Elemtype,t改为大写
int top; //栈顶指针
}stacknode;
stacknode *sp; //Stacknode,S改为s
init (stacknode *st) //初始化栈
{
st->top=0; //栈顶指针为0
return 0;
}
void push (stacknode *st,ElemType x) //将元素x入栈
{
if(st->top==m) //判断栈st是否已满
printf("栈溢出!\n");
else //不满则将元素x加入栈st中
{
st->top=st->top+1;
st->stack[st->top]=x;
}
}
void pop(stacknode *st) //将栈st的栈顶元素出栈
{
st->top=st->top-1;
}
int main(void)
{
char s[m];
int i;
printf("创建空栈!\n");
init (sp);
printf("输入表达式:\n");
gets(s); //输入表达式
for(i=0;i
if(s[i]=='(') //遇到表达式中的左括号,将其入栈
push(sp,s[i]);
if(s[i]==')') //遇到表达式中的左括号,将其出栈
pop(sp);
}
if(sp->top==0) //如果栈最后恢复为空,则 表达式中的左右括号是匹配的
printf("右括号是匹配的!\n");
else
printf("左右括号不匹配!\n");
return 0;
}
回楼主你在头部加上#include
预编译头文件有问题。
你看看工程设置里面有没有设置预编译头文件。
打开预编译头文件(一般为Stdafx.h),看里面代码有没问题
鄙视楼上!
很简单,可能是不小心打了一个中文的逗号,分号等
另外中文的空格也是会出现unexpected end这个错误的
我就经常出这样的错误一般都是这样结决的
1.不区分大小写
2.不管c本身的类型声明
就这两点就能使这个程序通不过编译
你可以再看看书,上面的程序问题太多了,是不是有的地方抄错了
unexpected end of file while looking for precompiled header directive
A precompiled header was specified, but it did not contain a precompiled header directive.
This error can be caused by specifying an incorrect file as a header file, or by specifying an include file with the /Yu (Use Precompiled Header) command line option that is not listed in the source file as an include file.
怀疑是你vc的问题