一个进制转换的程序有问题,大家帮我看看问题在哪里 我执行不成功啊……
#include "stdio.h"#include <stdlib.h>#define TURE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;typedef struct{ int *base; int *top; int stacksize;}SqStack;Status InitStack(SqStack s){ s.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int)); if(!s.base)exit(0); s.top=s.base; s.stacksize=STACK_INIT_SIZE; return OK; }
Status Push(SqStack s,int e){ if(s.top-s.base>=s.stacksize) { s.base=(int *)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(int)); if(!s.base) exit(OVERFLOW); s.top=s.base+s.stacksize; s.stacksize+=STACKINCREMENT; }
*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 1; else return 0;}
void conversion_10_8(){ int e; int N; int*p=NULL; SqStack s; InitStack(s); scanf("%",&N); while(N) { Push(s,N%8); N=N/8; } while(!StackEmpty(s)) { Pop(s,e); printf("%d",e);}
}
void main(){ printf("请输入您要转换的十进制数字:\n"); conversion_10_8();
}
[ 本帖最后由 n272367953 于 2011-5-8 23:09 编辑 ]