• 求助,新人,用的C,为什么我这样输出不正确?
  • 其它
    3.00元

萌新,学了以C++为基础的数据结构,用C++没问题,类似的代码修改C出错了,不知错在哪,求大佬帮忙

//用栈将十进制转换为八进制 //C #include<stdio.h> #define MAXSIZE 99 typedef int Status; typedef struct  {     int *base;     int *top;     int stacksize; }SqStack; SqStack S;//全局变量 Status InitStack()//初始化栈 {     int num[MAXSIZE];     S.top = S.base = num;     S.stacksize = MAXSIZE;     return 1; } Status Push(int e)//入栈 {     if (S.top - S.base == S.stacksize) return 0;     *(S.top) = e;     S.top++;     return 1; } Status Pop()//出栈 {     int num;     if (S.top == S.base) return 0;     num = *--(S.top);     return num; } Status conversion(int N) {     InitStack();     while (N)     {         Push(N % 8);         N = N / 8;     }     printf_s("输出八进制的数:");     while (S.top != S.base)     {         printf_s("%d", Pop());     } } int main() {     int D;     printf_s("输入一个十进制的数:");     scanf_s("%d", &D);     if (D > 0)         conversion(D);     else         printf_s("ERROR\n");     system("pause"); }

入栈有问题,不知是什么问题


  • 就几件    2020-06-11 11:29:04
  • 阅读 1893    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信