要求:
输入一个十进制数,利用栈操作,将该数转换成n进制数。
因为写数据结构,所有写成了一个个函数的模块,其实用不了这么长的。
#include <stdio.h>
typedef struct {
int base[1000];
int top;
int stacksize;
}Stack;
int StackEmpty(Strck S)
{
if(S.top==0)
return 1;
return 0;
}
void InitStack(Strck &S)
{
S.top=0;
S.stacksize=1000;
}
void Push(Stack &S,int e)
{
S.base[S.top++]=e;
}
void Pop(Stack &S,int &e)
{
if(StackEmpty(S))
return ;
e=S.base[--S.top];
}
int main()
{
int n,m,e;
Stack S;
InitStack(S);
printf("请输入一个十进制数:");
scanf("%d",&n);
printf("请输入要转换的进制:");
scanf("%d",&m);
while(n)
{
Push(S,n%m);
n/=m;
}
printf("转换结果为:");
while(!StackEmpty(S))
{
Pop(S,e);
if(m==16 && e>=10)
printf("%c",e-10+'A');
else
printf("%d",e);
}
return 0;
}