📄 数制转换.txt
字号:
#include"stdio.h"
#include"stdlib.h"
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct stack{
int *base;//栈底指针
int *top;//栈顶指针
int stacksize;//保存栈的长度
}sqstack;
void initstack(sqstack &s){
s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
s.stacksize=STACK_INIT_SIZE;
s.top=s.base;
}//对栈进行初始化
int stacklength(sqstack s){
return s.top-s.base;
}//求栈的长度
void push(sqstack &s,int e){
*s.top=e;
s.top++;
*(s.top)=0;
}//插入元素e为s的新的栈顶元素
int mod(int m,int n){
return m-(m/n)*n;
}//返回m除以n所得的余数
void conversion(int m,int jz,sqstack &s){
while(m!=0){
push(s,mod(m,jz));
m=m/jz;
}
}//将十进制的数m转化为jz进制,并将结果保存到栈中
void main(){
int m;//需要转化的数据
int jz;//保存多少进制
int k;//循环控制变量
int len;//用来保存栈的长度
sqstack s;
initstack(s);
printf("请输入需要转化的十进制数据:");
scanf("%d",&m);
printf("转化为多少进制的数据:");
scanf("%d",&jz);
conversion(m,jz,s);
len=stacklength(s);
//printf("长度为:%d\n",stacklength(s));
printf("十进制的%d转化为%d进制的数为:",m,jz);
for(k=0;k<len;k++){
printf("%d",*(s.top-1));
s.top--;
}
getchar();
getchar();
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -