/* Note:Your choice is C IDE */
#include ""
#include ""
typedef struct sqstack //创建名为sqstack的节点
{
char data[100];
int top;
}sqstack,*stack; //创建stack的数据类型
stack initstack() //栈的初始化
{
stack s;
s=(stack)malloc(sizeof(sqstack));
s->top=-1;
return s;
}
int push(stack s,char ch) //压栈
{
if(s->top==100) //栈满,则停止进栈
return 0;
else
{
s->data[++s->top]=ch; //将输入的数据放入栈顶
return 1;
}
}
int pop(stack s,char *ch) //出栈
{
if(s->top==-1) //若栈空则停止出栈,否则执行出栈操作
return 0;
else
{
*ch=s->data[s->top--]; //每出栈一个,栈顶减1
return 1;
}
}
void convert(int n,char str[],int jinzhi) //根据输入的数据进行进制转换
{
stack s;
int i=0;
s=initstack();
while(n)
{
if(n%jinzhi<10)
push(s,n%jinzhi+'0'); //若是要求的进制小于10,则只输出数字,调用push函数
else
push(s,n%jinzhi+'A'-10); //若是要求的进制大于10,则输出字母和数字,调用push函数
n=n/jinzhi;
}
while(s->top!=-1)
{
pop(s,&str[i++]); //只要栈非
十进制数与N进制数据的转换 来自淘豆网m.daumloan.com转载请标明出处.