| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2270 人关注过本帖
标题:新手求教,用栈实现的数制转换,哪儿不对啊
取消只看楼主 加入收藏
宁缺
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-5-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
新手求教,用栈实现的数制转换,哪儿不对啊
#include<stdio.h>
#include<stdlib.h>
#define  STACK_INIT_SIZE  100
#define  STACKINCREMENT    10
typedef struct {
   int * base;
   int * top;
   int  stacksize;
}SqStack;
void InitStack(SqStack&S){
S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!S.base)printf("overflow");
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
   }
void Push (SqStack &S,int e){
     //插入元素e为新的栈顶元素
     if(S.top-S.base>=S.stacksize){
          //---栈满,追加存储空间---
          S.base=(int *)realloc(S.base,
                              (S.stacksize+STACKINCREMENT)
                               *sizeof(int));
          if(!S.base)printf("overflow");//存储分配失败
          S.top=S.base+S.stacksize;   
          S.stacksize+=STACKINCREMENT;}
    *S.top++=e;
   
}//Push
void  Pop( SqStack &S,int &e){
      //若栈不空,则删除s的栈顶元素,
      //用e返回其值,并返回OK;
      //否则返回ERROR
      if(S.top = S.base) printf("error");
       e = *--S.top;
      
} // Pop
int StackEmpty(SqStack&S){
if(S.top = S.base)
return 1;
else
return 0;
}
        
void  conversion (int N) {
        //对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
            SqStack S;
            int e;
            InitStack(S);  //构造空栈
            while(N){
                     Push(S,N%8);
                     N = N/8; }
                 while (!StackEmpty(S)) {
                     
                       Pop(S, e);
                       printf("%",e);}
        } //Conversion
void main(){
    int N;
    printf("请输入一个非负十进制整数");
        scanf("%d",&N);
    conversion(N);

}
用栈实现数制转换,运行结果不对,哪儿错了啊
搜索更多相关主题的帖子: include 空间 元素 
2015-05-10 20:45
快速回复:新手求教,用栈实现的数制转换,哪儿不对啊
数据加载中...
 
   



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

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