| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:求高手指导下这段代码的报错!
只看楼主 加入收藏
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
求高手指导下这段代码的报错!
#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int *base;
    int *top;
    int stacksize;//栈当前分配的总空间
}Stack;
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
#define OK 1;
#define OVERFLOW 0;
#define ERROR -1;
void INIT_STACK(Stack &S);
void INSERT_STACK(Stack &S,int e);
int Pop(Stack &S,int &e);
int main()
{
    Stack S1;
    INIT_STACK(S1);
    INSERT_STACK(S1,1);
    INSERT_STACK(S1,2);
    INSERT_STACK(S1,3);
    int i;
    int a;
    for(i=0;i<3;i++)
    {
        Pop(S1,a);
        printf("%d",a);
    }
    return 0;


}

//创建一个空的栈
void INIT_STACK(Stack &S)
{
    S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));//初始化空间
    if(!S.base) exit(OVERFLOW);//初始化空间失败
    S.top=S.base;
    S.stacksize=STACK_INIT_SIZE;   
}
//在栈中插入一个元素
void INSERT_STACK(Stack &S,int e)
{
    if((S.top-S.base)>=S.stacksize)//栈满了
    {
        S.base=(int *)realloc(S.base,(S.stacksize+STACKINCEMENT)*sizeof(int));
        if(!S.base)exit(OVERFLOW);
        S.top=S.base+S.stacksize;
        S.stacksize+=STACKINCREMENT;

    }
    *S.top=e;
    S.top++;

}
//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR;
int Pop(Stack &S,int &e)
{
    if(S.base==S.top) return ERROR;
    e=*--S.top;
    return OK;
}
搜索更多相关主题的帖子: 空间 
2011-04-16 23:45
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
--------------------Configuration: fdfef - Win32 Debug--------------------
Compiling...
fdfef.cpp
H:\平时编程保存文件\fdfef.cpp(38) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(38) : error C2059: syntax error : ')'
H:\平时编程保存文件\fdfef.cpp(38) : error C2100: illegal indirection
H:\平时编程保存文件\fdfef.cpp(39) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(39) : error C2059: syntax error : ')'
H:\平时编程保存文件\fdfef.cpp(48) : error C2065: 'STACKINCEMENT' : undeclared identifier
H:\平时编程保存文件\fdfef.cpp(49) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(49) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

fdfef.obj - 1 error(s), 0 warning(s)
2011-04-16 23:46
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
--------------------Configuration: fdfef - Win32 Debug--------------------
Compiling...
fdfef.cpp
H:\平时编程保存文件\fdfef.cpp(38) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(38) : error C2059: syntax error : ')'
H:\平时编程保存文件\fdfef.cpp(38) : error C2100: illegal indirection
H:\平时编程保存文件\fdfef.cpp(39) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(39) : error C2059: syntax error : ')'
H:\平时编程保存文件\fdfef.cpp(48) : error C2065: 'STACKINCEMENT' : undeclared identifier
H:\平时编程保存文件\fdfef.cpp(49) : error C2143: syntax error : missing ')' before ';'
H:\平时编程保存文件\fdfef.cpp(49) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

fdfef.obj - 1 error(s), 0 warning(s)
2011-04-16 23:46
firsttiger_0
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2011-4-16
收藏
得分:10 
#define语句后面的“;”去掉,否则,将;连同数字一起替换前面
2011-04-17 01:19
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int *base;
    int *top;
    int stacksize;//栈当前分配的总空间
}Stack;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define OVERFLOW 0
#define ERROR -1
void INIT_STACK(Stack &S);
void INSERT_STACK(Stack &S,int e);
int Pop(Stack &S,int &e);
int main()
{
    Stack S1;
    INIT_STACK(S1);
    INSERT_STACK(S1,1);
    INSERT_STACK(S1,2);
    INSERT_STACK(S1,3);
    int i;
    int a;
    for(i=0;i<3;i++)
    {
        Pop(S1,a);
        printf("%d",a);
    }
    return 0;


}

//创建一个空的栈
void INIT_STACK(Stack &S)
{
    S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));//初始化空间
    if(!S.base) exit(OVERFLOW);//初始化空间失败
    S.top=S.base;
    S.stacksize=STACK_INIT_SIZE;   
}
//在栈中插入一个元素
void INSERT_STACK(Stack &S,int e)
{
    if((S.top-S.base)>=S.stacksize)//栈满了
    {
        S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
        if(!S.base)exit(OVERFLOW);
        S.top=S.base+S.stacksize;
        S.stacksize+=STACKINCREMENT;

    }
    *S.top=e;
    S.top++;

}
//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR;
int Pop(Stack &S,int &e)
{
    if(S.base==S.top) return ERROR;
    e=*--S.top;
    return OK;
} 
没错了

                                         
===========深入<----------------->浅出============
2011-04-17 08:55
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
回复 4楼 firsttiger_0
十分感谢!
2011-04-17 13:16
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
回复 4楼 firsttiger_0
十分感谢!
2011-04-17 13:16
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
回复 5楼 laoyang103
太感谢了,兄弟!
2011-04-17 13:17
快速回复:求高手指导下这段代码的报错!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017364 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved