您的位置:首页 > 理论基础 > 数据结构算法

数据结构实验之栈一:进制转换

2016-07-30 19:30 399 查看

题目描述

输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出。

输入

第一行输入需要转换的十进制数;

第二行输入R。

输出

输出转换所得的R进制数。

示例输入

1279
8


示例输出

2377


 
 
都是套路啊都是套路




 
#include <stdio.h>
#include <stdlib.h>
#define maxstack 100000
#define numstack 100000
typedef int Elemtype;
typedef struct
{
Elemtype *top;
Elemtype *base;
int stacksize;
}qstack;
int initstack(qstack *L)
{
L->base=(Elemtype *)malloc(maxstack *sizeof(Elemtype));
if(!L->base)
{
exit(0);
}
L->top=L->base;
L->stacksize=maxstack;
return 0;
}
int pushstack(qstack *L,int k)
{
if(L->top-L->base>=L->stacksize)
{
L->base=(Elemtype *)realloc(L->base,(L->stacksize+numstack)*sizeof(Elemtype));
if(!L->base)
{
exit(0);
}
L->top=L->base+L->stacksize+numstack;
}
*L->top++=k;
return 0;
}
int conversion(qstack *L,int n,int m)
{
int k;
while(n)
{
k=n%m;
n=n/m;
pushstack(L,k);
}
return 0;
}
int putstack(qstack *L)
{
while(L->top>L->base)
{
printf("%d",*(L->top-1));
L->top--;
}
return 0;
}
int main()
{
qstack L;
initstack(&L);
int n,m;
scanf("%d %d",&n,&m);
conversion(&L,n,m);
putstack(&L);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 函数