在C++环境下运行程序出错!(急!在线等!!)

2024-12-03 13:08:35
推荐回答(5个)
回答1:

回楼主你在头部加上#include 试试,如果不行就在vc上面的菜单找到Project————>Settings--->C/C++------>在下拉菜单页面选择Precomplie Header---->单选第一项(把出错源文件设置为不使用预编译头)就可以了。

********************************************
#include /*在vc下调试通过主要错误是ElemType与stacknode,在后面的定义中大小写抄错,还有就是strlen函数没有加数组参数。*/
#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 试试

回答2:

预编译头文件有问题。
你看看工程设置里面有没有设置预编译头文件。
打开预编译头文件(一般为Stdafx.h),看里面代码有没问题

鄙视楼上!

回答3:

很简单,可能是不小心打了一个中文的逗号,分号等
另外中文的空格也是会出现unexpected end这个错误的
我就经常出这样的错误一般都是这样结决的

回答4:

1.不区分大小写
2.不管c本身的类型声明

就这两点就能使这个程序通不过编译

你可以再看看书,上面的程序问题太多了,是不是有的地方抄错了

回答5:

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的问题