#include<stdio.h>
#include<stdlib.h>
#define ERROR -1
int m,n,e;
typedef int Status;
typedef struct Node{
    int data;          //结点的数据域
    struct Node *next;  //结点的指针域
}Node,*LinkList;
int Init_Stack(LinkList &S)
{
    S = (LinkList)malloc(sizeof(Node));
    if(!S)
        return ERROR;
    S->next = NULL;
    return 1;
}
int Push_Stack(LinkList &S,int e)
{

    LinkList p = (LinkList)malloc(sizeof(Node));
    p->data = e;
    p->next = S->next;
    S->next = p;
    return 1;
}
int qwe(LinkList &S)
{
    LinkList p = S->next;
    if(!p)
        return 0;
    else return 1;
}
int All_Stack(LinkList S)
{
    int i = 0;
    LinkList p = S->next;
    if(!p)
        return ERROR;
    while(p)
    {
        printf("%d",p->data);
        p = p->next;
    }
    return 1;
}
void conversation(LinkList &S)
{
    int i=0;
    printf("%d用%d进制表示为:",n,m);
    while(n)
    {
        if(Push_Stack(S,n%m))//调用函数,实现栈
        {
            n=n/m;
        }
    }
    All_Stack(S);//输出栈元素
}
int main()
{
    printf("输入一个非负的十进制数\n");
    LinkList S;
    Init_Stack(S);
    scanf("%d",&n);
    printf("输入进制");
    scanf("%d",&m);
    conversation(S);
    system("pause");
    return 0;
}

更多推荐

【无标题】十进制转换成任意进制