📄 convert.cpp
字号:
#include <stdio.h>
typedef char ElemType;
typedef struct LNode
{
ElemType elem;
LNode *next;
}LNode,*LStack;
void Init(LStack &S)
{
S = NULL;
}
void Push(LStack &S,ElemType elem)
{
LNode *pnew;
pnew = new LNode;
pnew->elem = elem;
pnew->next = S;
S = pnew;
}
void Pop(LStack &S,ElemType &elem)
{
LNode *pnew;
pnew = S;
S = S->next;
elem = pnew->elem;
delete pnew;
}
void Destroy(LStack &S)
{
LNode *pcur;
while(S)
{
pcur = S;
S = S->next;
delete pcur;
}
S = NULL;
}
void Convert(int num1,int num2,char cnum[])
{
LStack S;
ElemType elem;
int temp;
Init(S);
while(num1)
{
temp = num1%num2;
if(temp == 10)
elem = 'A';
else if(temp == 11)
elem ='B';
else if(temp==12)
elem = 'C';
else if(temp == 13)
elem = 'D';
else if(temp == 14)
elem = 'E';
else if(temp == 15)
elem = 'F';
else
elem = temp+'0';
Push(S,elem);
num1 = num1/num2;
}
while(S)
{
Pop(S,elem);
*cnum++ = elem;
}
*cnum = 0;
Destroy(S);
}
main()
{
int num,x;
char *cnum = new char[10];
while(1)
{
printf("\n请输入操作提示符:0~1(0:退出;1:操作)");
char ch;
ch = getchar();
if(ch=='1')
{
printf("\n请输入要转换的数和要转换成的进制:");
scanf("%d%d",&num,&x);
Convert(num,x,cnum);
printf("\n转换之后的数为:");
printf("\n%s",cnum);
}
else if(ch == '0')break;
else continue;
}
delete []cnum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -