栈的应用:输入一个十进制数,利用栈操作,将该数转换成n进制数

代码

#include
#include
#define StackInitSize 100
#define StackIncrease 10
typedef struct{
	char *base;
	int top;
	int stacksize;
}SqStack;
//初始化 
void CInitStack(SqStack &S){
	S.base=(char*)malloc(StackInitSize*sizeof(char));
	if(!S.base)
		return;
	S.top=0;
	S.stacksize=StackInitSize;
}
//判空
int KStackEmpty(SqStack S){
	if(S.top==0)
		return 1;
	return 0;
}
//入栈
void RPush(SqStack &S,char e){
	if(S.top>=S.stacksize){
		S.base=(char*)realloc(S.base,(S.stacksize+StackIncrease)*sizeof(char));
	}
	if(!S.base)
		return;
	S.stacksize+=StackIncrease;
	S.base[S.top++]=e;	
} 
//出栈 
void CPop(SqStack &S,char &e){
	if(S.top==0)
		return;
	e=S.base[--S.top];	
}
void Jinzhi(int n,int d){
	SqStack S;
	int e;
	char x;
	CInitStack(S);
	scanf("%d%d",&n,&d);
	while(n){
		e=n%d;
		if(e<10)
			x=e+'0';
		else
			x=e-10+'a';
		RPush(S,x);
		n=n/d;
	}
	while(!KStackEmpty(S)){
		CPop(S,x);
		printf("%c",x);
	}	
}
int main()
{
	int num,n;
	printf("输入要转化进制的数并输入转化为几进制:");
	Jinzhi(num,n);
	return 0;
}

运行结果截图:
栈的应用:输入一个十进制数,利用栈操作,将该数转换成n进制数_第1张图片
栈的应用:输入一个十进制数,利用栈操作,将该数转换成n进制数_第2张图片

你可能感兴趣的:(栈的应用:输入一个十进制数,利用栈操作,将该数转换成n进制数)