数值转换-------------------
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define STACKIN 2
#define STACK_INIT 10
typedef struct{
int *top;
int *base;
int stacksize;
}SqStack;
int InitStack(SqStack &S){
S.base = (int*)malloc(STACK_INIT * sizeof(int));
if(!S.base)exit(-1);
S.top = S.base;
S.stacksize = STACK_INIT;
return 1;
}
int Push(SqStack &S,int e){
if(S.top-S.base>=S.stacksize){
S.base = (int *)realloc(S.base,(S.stacksize+STACKIN)*sizeof(int));
if(!S.base)exit(-1);
S.top = S.base + S.stacksize;
S.stacksize+=STACKIN;
}
*(S.top++)= e;
}
int Stackempty(SqStack S)
{
if(S.base==S.top)
{
return 1;
}else{
return 0;
}
}
void Pop(SqStack &S,int &e)
{
if(S.base==S.top)exit(-1);
e = *(--S.top);
}
int main()
{
int N,e,a;
SqStack S;
InitStack(S);
printf("请输入要转换的数值");
scanf("%d",&N);
printf("请输入要转换成何进制");
scanf("%d",&a);
while(N){
Push(S,N%8);
N = N/a;
}
while(!Stackempty(S)){
Pop(S,e);
printf("%d",e);
}
}