📄 07238020chx.txt
字号:
#include <stdio.h>
#include <stdlib.h>
//定义栈接点
typedef struct Snode
{
int data;
struct Snode *next,*pre;
}LinkStack;
//链队类型定义
typedef struct
{
LinkStack *front;
LinkStack *rear;
}LinkQueue;
//数据进栈
LinkStack *push(LinkStack *ls,int x)
{
LinkStack *top,*p;
top=ls;
p=(LinkStack *)malloc(sizeof(LinkStack));
if(!p) return NULL;
p->data=x;
p->next=NULL;
p->pre=top;
top->next=p;
top=p;
return top;
}
//数制转换
LinkStack *Transferd(int oldNum,int shuzhi)
{
LinkStack *top;
int sz,oldnum,temp;
top=(LinkStack *)malloc(sizeof(LinkStack));
top->next=top->pre=NULL;
oldnum=oldNum;sz=shuzhi;
while(oldnum)
{
temp=oldnum%sz;
oldnum=oldnum/sz;
top=push(top,temp);
}
return top;
}
//数据进入队列
LinkQueue *enQueue(LinkQueue *lqu,int x)
{
LinkStack *p;
LinkQueue *lq;
lq=lqu;
p=(LinkStack *)malloc(sizeof(LinkStack));
p->data=x;
p->next=NULL;
if(lq->rear==NULL)//进来第一个接点
{
lq->front=lq->rear=p;
return lq;
}
else
{
lq->rear->next=p;
lq->rear=p;
return lq;
}
}
//数据出栈,进入队列
LinkQueue *StackToQueue(LinkStack *ls)
{
LinkStack *top;
LinkQueue *lq;
lq=(LinkQueue *)malloc(sizeof(LinkQueue));
lq->front=lq->rear=NULL;
int temp;
top=ls;
while(top)
{
temp=top->data;
top=top->pre;
lq=enQueue(lq,temp);
}
return lq;
}
//输出结果
void print(LinkQueue *lqu,int sz)
{
LinkQueue *p;
p=lqu;
if(p->front==p->rear)
{
printf("队列为空!");
}
else
{
printf("(");
while(p->front!=p->rear)
{
switch(p->front->data)
{
case 10:printf("A");break;
case 11:printf("B");break;
case 12:printf("C");break;
case 13:printf("D");break;
case 14:printf("E");break;
case 15:printf("F");break;
default :printf("%d",p->front->data);
}
p->front=p->front->next;
}
printf(")%d",sz);
}
printf("\n");
}
//主函数
void main()
{
LinkStack *ls;
LinkQueue *lq;
int x,y;
printf("请输入要转换的数x和进制y,如果想退出程序请输入0,0:\n");
scanf("%d,%d",&x,&y);
while(x!=0&&y!=0)
{
while(y!=2&&y!=8&&y!=16)
{
printf("\n您输入的进制不符合要求。请重新输入:");
scanf("%d",&y);
}
ls=Transferd(x,y);
lq=StackToQueue(ls);
printf("\n%d转换为%d进制的结果:\n",x,y);
printf("%d=",x);
print(lq,y);
printf("\n请输入要转换的数x和进制y,如果想退出程序请输入0,0:\n");
scanf("%d,%d",&x,&y);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -