题目描述:
将十进制数字转化为其他进制
#include <stdio.h>
#define Stack_Size 20
#define TRUE 1
#define FALSE 0
//结构体
typedef struct{
int elem[Stack_Size];
int top;
}SeqStack;
//初始化栈
void InitStack(SeqStack *S){
S->top=-1;
}
//进栈
int Push(SeqStack *S,int x){
if(S->top==Stack_Size-1)
return(FALSE);
else{
S->top=S->top+1;
S->elem[S->top]=x;
return(TRUE);
}
}
//出栈
int Pop(SeqStack *S,int *x) {
if(S->top==-1)
return(FALSE);
else{
*x=S->elem[S->top];
S->top--;
return(TRUE);
}
}
//输出栈
void print(SeqStack *S){
int x;
for(x=0;x<=S->top;x++)
printf("%d",S->elem[x]);
printf("\n");
}
//进制转换
void conversationcint(SeqStack *S,int N){
int x,z,y=0,*p;
printf("请输入你想要转化成进制的数字:");
scanf("%d",&N);
printf("请输入你想要转换成的进制:");
scanf("%d",&z);
InitStack(S);
while(N>0){
y=N%z;
Push(S,y);
N=N/z;
}
while(S->top!=-1){
Pop(S,&y);
printf("%d",y);
}
printf("\n");
}//主函数
void main(){
int x;
SeqStack S;
conversationcint(&S,x);
}
运行结果截图: