#include <stdio.h>
#include <stdlib.h>
#define maxsize 1000000
**//定义队列**
typedef struct
{
char c[maxsize];
int top;
}seqstack;
**//判断队列是否为空**
int empty_seqstack(seqstack *s)
{
if(s->top==-1)
return 1;
else
return 0;
}
**//入队**
void push_seqstack(seqstack *s,char x)
{
if(s->top==maxsize-1)
printf("stack is full\n");
else
{
s->top++;
s->c[s->top]=x;
}
}
**//出队**
void pop_seqstack(seqstack*s)
{
char x;
while(s->top!=-1)
{
x=s->c[s->top];
printf("%c",x);
s->top--;
}
}
**///进制转换(以字符形式存储为核心)**
void conversion(int a,int r,seqstack *s)
{
char x;
while(a!=0)
{
if(a%r<=9)
{
x=a%r+'0';
push_seqstack(s,x);
}
else
{
x=a%r+'A'-10;
push_seqstack(s,x);
}
a=a/r;
}
}
**//主程序**
int main()
{
int a,r;
seqstack *s;
s=(seqstack*)malloc(sizeof(seqstack));
s->top=-1;
printf("请输入要转换的数和进制\n");
scanf("%d %d",&a,&r);
conversion(a,r,s);
pop_seqstack(s);
return 0;
}
任意进制转换(队列实现存储和输出)
猜你喜欢
转载自blog.csdn.net/cruel2436/article/details/83018596
今日推荐
周排行