📄 用栈实现十进制数转换为任何一种数制.cpp
字号:
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#define ok 1;
#define error 0;
#define stack_init_size 100;
#define stackincrement 10;
typedef struct{
int *base;
int *top;
int stacksize;
}sqstack;
int initstack(sqstack &s)
{
s.base=(int *)malloc(100*sizeof(int));
if(!s.base)
exit(0);
s.top=s.base;
s.stacksize=100;
return ok;
}
int push(sqstack &s,int e)
{
if(s.top-s.base>=s.stacksize)
{
s.base=(int *)realloc(s.base,(110)*sizeof(int));
if(!s.base) exit (0);
s.top=s.base+s.stacksize;
s.stacksize+=stackincrement;
}
*s.top++=e;
return 1;
}
int pop(sqstack &s,int &e)
{
if(s.top==s.base)return 0;
e=*--s.top;
return e;
}
int stackempty(sqstack s)
{
if(s.base!=s.top)return 0;
return 1;
}
void conversion(){
int e,n;sqstack s;
initstack(s);
scanf("%d",n);
while(n){
push(s,n%16);
n=n/16;
}
while(!stackempty(s)){
pop(s,e);
printf("%d",e);
}
}
void main()
{
conversion();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -