#include<stdio.h>
#include<stdlib.h>
#define stackinitsize 100
#define stackincrement 10
typedef struct{
int *base;
int top;
int stacksize;
}sqstack;
void initstack(sqstack &S){
//初始化
S.base=(int*)malloc(stackinitsize*sizeof(int));
if(!S.base)
return;
S.top=0;
S.stacksize=stackinitsize;
}
int stackempty(sqstack S){
//判空
if(S.top==0)
return 1;
return 0;
}
void push(sqstack &S,int e){
//入棧
if(S.top>S.stacksize){
S.base=(int*)realloc(S.base,(S.stacksize+stackincrement)*sizeof(int));
if(!S.base)
return;
S.stacksize+=stackincrement;
}
S.base[++S.top]=e;
}
void pop(sqstack &S,int &e){
//出棧
if(S.top==0)
return;
e=S.base[S.top--];
}
void conversion(int n,int d)
{
//進制轉化
sqstack S;
initstack(S);
while(n){
push(S,n%d);
n=n/d;
}
while(!stackempty(S)){
int e;
pop(S,e);
if(e>=10)
printf("%c",e-10+'A');
else
printf("%d",e);
}
}
int main()
{
int m,d;
scanf("%d%d",&m,&d);
conversion(m,d);
return 0;
}
棧的應用 -內容:輸入一個十進制數,利用棧操作,將該數轉換成n進制數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.