dule8013 2016-10-18 14:57 采纳率: 0%
浏览 1508
已结题

菜鸟求助!!C语言用栈写的十进制转二进制 八进制和十六进制 死都运行不出来!求大神指点!

#include

#include

#include
#define OK 1
#define ERROR 0
#define OVERFLOW -1
typedef int Status;
typedef int ElemType;

#define S_SIZE 100

#define STACKINCREAMENT 10
typedef struct{
int base;
int *top;
int stacksize;
}SqStack;
Status InitStack(SqStack &S)

{
S.base=(int *)malloc(S_SIZE * sizeof(int));
if(!S.base)exit(OVERFLOW);
S.top=S.base;
S.stacksize=S_SIZE;
return OK;
}

Status GetTop(SqStack S,int &e){
if(S.top==S.base) return ERROR;
e=
(S.top-1);
return OK;
}
Status Push(SqStack &S,int e){
if(S.top-S.base>=S.stacksize){
S.base=(int )realloc(S.base,(S.stacksize+STACKINCREAMENT)*sizeof(int));
if(!S.base)exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREAMENT;
}
*S.top++=e;
return OK;
}
Status Pop(SqStack &S,int &e){
if(S.top==S.base)return ERROR;
e=
--S.top;
return OK;
}
Status StackEmpty(SqStack S)
{
if(S.top==S.base)
return OK;
else
return ERROR;
}
Status GetTop(SqStack S,int e){
if(S.top){
if(S.top==S.base)return ERROR;
e=*(S.top-1);
printf("%d",e);
return OK;
}
void ba(int N){
InitStack(S);
scanf("%d",N);
while(N){
Push(S,N%8);
N=N/8;
}
while(!StackEmpty(S)){
Pop(S,e);
printf("%d",e);
}
}
void er(int M){
InitStack(S);
scanf("%d",M);
while(M){
Push(S,M%2);
M=M/2;

}
while(!StackEmpty(S)){
    Pop(S,e);
    printf("%d",e);
}

}
void shiliu(int C){
InitStack(S);
scanf("%d",C);
while(C){
if(C%16<=9)
Push(S,C%16);
else
switch(C%16){
case 10:Push(S,'A');break;
case 11:Push(S,'B');break;
case 12:Push(S,'C');break;
case 13:Push(S,'D');break;
case 14:Push(S,'E');break;
case 15:Push(S,'F');break;
}
C=C/16;
}

}
void main(){
int a;
int b;
InitStack(SqStack &S);
printf("输入需要转换进制的数字:");
scanf("%d",&a);
printf("\n");
printf("输入转后的进制:");
scanf("%d",&b);
switch(b){
case 2: er(a);GetTop(&S,e);break;
case 8: ba(a);GetTop(&S,e);break;
case 16: shiliu(a);GetTop(&S,e);break;
}
}
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-10-18 15:07
    关注

    代码问题比较多
    InitStack(S);
    这里的分号是全角。
    参考:
    http://www.cnblogs.com/wc1903036673/archive/2013/11/18/3429044.html

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题