jakeboss
jakeboss
采纳率0%
2019-11-28 21:38

Vs中编译c代码无返回值错误该如何解决,各位大佬帮帮忙!!!!!!!!!

图片说明

代码如下

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define ERROR 0
#define OVERFLOW -2
#include
#include
#include
typedef int SElemType;
typedef struct {
SElemType *base;
SElemType *top;
int StackSize;
}SqStack;

void 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;
}
void 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;
}
int PoP(SqStack *s, SElemType *e)
{
if (s->top == s->base) return ERROR;
*//这个地方是否有问题**
s->top = s->top - 1;
*e = *s->top;
}
int StackEmpty(SqStack s)
{
if (s.top == s.base)
{
return 1;
}
else
{
return 0;
}
}
void Conversion(int N)
{
SElemType e;
SqStack s;
InitStack(&s);
while (N) {
push(&s, N % 8);
}
printf("转换后的八进制数为:");
while (StackEmpty(s) != 1)
{
PoP(&s, &e);
printf("%d", e);
}
printf("\n");
}
void main()
{
int n;
printf("请输入一个十进制数:");
scanf_s("%d", &n);
Conversion(n);
}


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • wingbinyu wingbinyu 2年前

    你可以在主函数声明一个新的变量 在你最终的输出结果进行定义就好了

    点赞 评论 复制链接分享
  • chenxizhan1995 chenxizhan1995 2年前

    PoP 函数末尾遗漏了 return 语句。加上就好了。


    话说就不能格式化一下代码……

    点赞 评论 复制链接分享
  • ZL1599292797 QiQaWgYu 2年前

    那不是错误,只是警告,你可以在最后加个return OK;

    点赞 评论 复制链接分享

为你推荐