《数据结构》10进制的数向任何进制的数进行转换

来源:互联网 发布:苹果手机平面设计软件 编辑:程序博客网 时间:2024/05/16 18:20

使用栈实现10进制的数向任何进制的数转换。

/*使用栈实现10进制到任何进制数的转化 */ #include<stdio.h>#define MAX 100//定义栈结构typedef struct{int *base;int *top;int stacksize;}SqStack;//初始化栈int InitStack(SqStack &S){S.base=new int[MAX];if(!S.base){return 0;}S.top=S.base;S.stacksize=MAX;return 1;} //判断栈是否为空int IsEmpty(SqStack &S){if(S.top==S.base){return 1;//栈空 }else{return 0;//栈非空 }} //入栈int Push(SqStack &S,int e){if(S.top-S.base==S.stacksize){return 0;//栈满 }*S.top++=e;return 1; } //出栈int Pop(SqStack &S,int &e){if(S.top==S.base){return 0;//栈空 }e=*--S.top;return 1;} void Conversion(SqStack &S,int n,int m){while(n){Push(S,n%m);n=n/m;}while(!IsEmpty(S)){int e;Pop(S,e);printf("%d",e); }}int main(){SqStack S;if(InitStack(S)){printf("栈S初始化成功!\n");}else{printf("栈S初始化失败!\n");}printf("请输入要转换的数n和进制数:");int n,m;scanf("%d %d",&n,&m);Conversion(S,n,m);return 0;}



0 0