大哥求指导
从键盘输入一个10进制的整数x和需要进行转换的进制n,输出x对应的n进制的数。例如,从键盘输入20和8,在数组b中应该是2 4
程序代码:
#include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef struct { int *top; int *base; int stacksize; }sqstack; int Initstack(sqstack &S) { S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int)); if(!S.base) return 0; S.top=S.base; S.stacksize=STACK_INIT_SIZE; return 1; } int Push(sqstack &S,int e) { if(S.top-S.base>=S.stacksize) { S.base=(int *)realloc(S.base,(STACK_INIT_SIZE+STACKINCREMENT)*sizeof(int)); if(!S.base) return 0; S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; } *S.top++=e; return 1; } int Pop(sqstack &S,int &e) { if(S.top==S.base) { return 0; } e=*--S.top; return 1; } int IsEmpty(sqstack &S) { if(S.top==S.base) return 1; else return 0; } int main() { sqstack S; Initstack(S); int e; int m; int n; printf("please input a number!\n"); scanf("%d",&m); printf("请输入你想要转换的进制数!\n"); scanf("%d",&n); while(m) { Push(S,m%n); m=m/n; } while(!IsEmpty(S)) { Pop(S,e); printf("%d ",e); } printf("\n"); return 0; }以前写的,可以运行,如果是16进制的话,在输出的时候稍微改动下就可以了