#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define InitStackSize 100
typedef struct SqStack
{
int *base; //桟底
int *top; //栈顶
int stacksize;
}Sqstack;
//初始化桟
void InitStack(SqStack &S)
{
S.base = S.top =(int *)malloc(InitStackSize*sizeof(int));
S.stacksize = InitStackSize;
}
//进栈
void PushStack(SqStack &S,int e)
{
*S.top = e;
S.top++;
}
void Conversion(SqStack &S,int n,int b) //转化
{ //n表示的是输入的十进制数;b表示的是想要转化的进制数
while(n)
{
PushStack(S,n%b); // n%b表示余数
n=n/b; //表示商
}
}
void DisplayStack(SqStack S)
{
while( S.top != S.base )
{
S.top--;
printf("%d",*S.top);
}
printf("\n");
}
int main()
{
SqStack stack;
int n,b;
printf("Put the num that you want to conver:\n");
while(scanf("%d",&n)!=EOF)
{
InitStack(stack);
printf("Input the conversion num b:\n");
scanf("%d",&b);
Conversion(stack,n,b);
printf("After conver:\n");
DisplayStack(stack);
printf("\n");
}
return 0;
}
桟的应用——数制转化
最新推荐文章于 2020-11-03 19:26:21 发布