文档库

最新最全的文档下载
当前位置:文档库 > 设计算法把十进制整数转换为二至九进制之间的任一进制输出

设计算法把十进制整数转换为二至九进制之间的任一进制输出

/*设计算法把十进制整数转换为二至九进制之间的任一进制输出*/
#include
#include
typedef struct node
{
int data;
struct node *next;
}LinkStack;


LinkStack *Push(LinkStack *LS,int x) //入栈函数
{
LinkStack *p;
p=(LinkStack *)malloc(sizeof(LinkStack));
p->data=x;
p->next=LS;
LS=p;
return LS;
}

LinkStack *Conversion(LinkStack *LS) //进行数值转换
{
int n=0;
int d=0;
printf("请输入要转换的数:\n");
scanf("%d",&n);
printf("请输入基数(2~9之间):\n");
scanf("%d",&d);
if(n<0||d<2||d>9)
{
printf("输入错误!\n");
exit(0);
}
if(n==0) //n==0,直接入栈
LS=Push(LS,0);
while(n) //当n!=0,进行求余、求商
{
LS=Push(LS,n%d); //将余数入栈
n=n/d;
}
return LS;
}
void Print(LinkStack *LS) //输出转换结果
{
LinkStack *u;
u=LS;
printf("转换结果为:\n");
while(u!=NULL)
{
printf("%d",u->data);
u=u->next;
}
printf("\n");
}
void main()
{
LinkStack *LS;
LS=NULL;
LS=Conversion(LS);
Print(LS);
}