请帮忙检查一下,在线等

imsolo imsolo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了几个栈的基本函数,主函数用于检查这几个函数,输入十进制数输出八进制数。
出错信息:E:\CFile\Stack\stack.c(29) : error C2143: syntax error : missing ')' before ';'
E:\CFile\Stack\stack.c(29) : error C2059: syntax error : ')'
E:\CFile\Stack\stack.c(29) : error C2100: illegal indirection
E:\CFile\Stack\stack.c(30) : warning C4013: 'exit' undefined; assuming extern returning int
E:\CFile\Stack\stack.c(78) : error C2143: syntax error : missing ')' before ';'
E:\CFile\Stack\stack.c(78) : error C2143: syntax error : missing ';' before ')'
E:\CFile\Stack\stack.c(87) : error C2061: syntax error : identifier 'Pop'
E:\CFile\Stack\stack.c(87) : error C2059: syntax error : ';'
E:\CFile\Stack\stack.c(87) : error C2059: syntax error : 'type'
我实在不知错在那里。代码:
#include <stdio.h>
#include <malloc.h>
#include "Common.h"

#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;

//函数声明
Status InitStack(SqStack *S); //构造一个空栈S
Status DestroyStack(SqStack *S); //销毁栈S,S不存在
Status ClearStack(SqStack *S); //把S置为空栈
Status StackEmpty(const SqStack *S); //若S置为空栈,则返回TRUE,否则返回FALSE
int StackLength(const SqStack *S); //返回S的元素个数,即栈的长度
Status GetTop(SqStack *S, SElemType *e); //若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR
Status Push(SqStack *S, SElemType e); //插入元素e为新的栈顶元素
Status Pop(SqStack *S, SElemType *e); //若栈不为空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
Status StackTraverse(SqStack *S, Status (*visit)()); //从栈底到栈顶依次对栈中每个元素调用函数visit()。一旦visit()失败,则操作失败

//函数定义
Status InitStack(SqStack *S)
{
S->base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if (!S->base) exit(OVERFLOW);
S->top = S->base;
S->stacksize = STACK_INIT_SIZE;
return OK;
}

Status DestroyStack(SqStack *S)
{
free(S->base); free(S->top);
if (S->base || S->base)
return ERROR;
else
return OK;
}

Status ClearStack(SqStack *S)
{
S->top = S->base;
if (S->top == S->base)
return OK;
else
return ERROR;
}

Status StackEmpty(const SqStack *S)
{
if (S->top == S->base)
return OK;
else
return ERROR;
}

int StackLength(const SqStack *S)
{
return S->stacksize;
}

Status GetTop(SqStack *S, SElemType *e)
{
if (S->top == S->base) return ERROR;
*e = *(S->top-1);
return OK;
}

Status Push(SqStack *S, SElemType e)
{
if (S->top - S->base >= S->stacksize)
{
S->base = (SElemType *)realloc(S->base,(S->stacksize + STACKINCREMENT) * sizeof(SElemType));
if (!S->base) exit(OVERFLOW);
S->top = S->base + S->stacksize;
S->stacksize += STACKINCREMENT;
}
*S->top++ = e;
return OK;
}

Status Pop(SqStack *S, SElemType *e)
{
if (S->top == S->base) return ERROR;
*e = *--S->top;
return OK;
}

Status StackTraverse(SqStack *S, Status (*visit)())
{
return OK;
}


void main(void)
{
SqStack *S;
int N,e;

InitStack(S);
printf("输入十进制数:");
scanf("%d",&N);
while (N)
{
Push(S, N%8);
N = N/8;
}
while (!StackEmpty(S))
{
Pop(S,&e);
printf("%d",e);
}

printf("Hello, world\n");
}
头文件commom.h
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;
//typedef int ElemType;
typedef int SElemType;
...全文

相关推荐

resume:这是我自己的个人网站

我这样做是为了让我有一个集中的简历,可以在线访问。 借助,我在几分钟之内建立了个性化的reactJS简历网站。 如果要创建自己的文件,请检查一下!自己

汪纪霞

everyday-js:这是我遵循的自我文档学习序列。 它用作我们日常使用JavaScript参考。 如果您有兴趣请检查一下,如果我错了请指正我

如果您有兴趣请检查一下,如果我错了,请纠正我。表中的内容 :

Lin Sha

Programming_Books:这是我阅读的一些编程书籍以及在遵循其示例的同时编写的程序的存储库。 请随时问我任何问题。 如果您在这里看到一本有趣的书,请去买一本并检查一下; 我只上传我喜欢或从中学到的书中的示例

请随时问我任何问题。 如果您在这里看到一本有趣的书,请去买一本并检查一下; 我只会上传我喜欢或从中学到的书中的示

活宝spring

检查一下

综上所述,"检查一下"在IT行业中涵盖了广泛的任务,从基础的系统监控到复杂的代码审查和安全审计,每个环节都对维持系统稳定性和安全性起着至关重要的作用。

徐校长

lihbr-apex:lihbr.com源代码,我的个人博客,您应该检查一下

Lihbr-顶点 这是的源代码,我的个人博客,您应该检查一下:D关于此应用程序是通过与,有关这些功能如何工作的详细说明,请参阅其相关文档。 它还依赖于和软件包,它们都是我用来在项目之间随身携带的个人助

Ma Daniel
评论 3
收藏 已收藏
分享
返回顶部
imsolo
C语言 70,040 成员 243,237 内容