用堆栈实现十进制转换为二进制,用除2取余法,建立项目实现!

不知道如何用项目实现,头文件的书写,......................

这样:

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 //静态顺序栈存储的最大空间 

typedef struct
{
    int data[MAXSIZE];//静态顺序栈可用的最大容量 
    int top;//栈顶
}SqStack;

void InitStack(SqStack &S)//栈的初始化 
{
    S.top = -1;//静态顺序栈中,使S.top=-1便是对栈的初始化 
}

int Push(SqStack &S,int e)//进栈 
{
    if(S.top==MAXSIZE-1)//判断栈是否为满 
    {
        printf("栈满!\n");
        return 0;
    }
    S.data[++S.top]=e;//S.top自加一,使S.top=0,使输入的e值导入栈中 
    return 0; 
}

void Pop(SqStack &S)//使栈顶元素出栈,并输出栈顶元素,且栈长减一 
{
    if(S.top == -1)//判断栈是否为空 
        printf("栈空!\n");
    else 
        printf("%d",S.data[S.top--]);//输出栈顶元素 
}

void Binary(SqStack S)//十进制转二进制函数 
{
    int a,
        i = 0;
    //printf("请输入十进制数: "); 
    scanf("%d",&a);//输入任意的十进制数 
    while(a)//循环结束条件是a为0 
    {
        Push(S,a%2);//余数进栈 
        a = a/2;//由于是整数形式,不存在除不尽的状况,假设a=1,除2等于0 
        i++;//记录进栈多少次 ,方便出栈操作 
    }
    while(i)//循环终止条件是i为0 
    {
        Pop(S);//依次输出栈顶元素 
        i--;
    }
}

int main()
{
    SqStack S;
    InitStack(S);//创建一个栈,并初始化 
    Binary(S);//进制转换 
    return 0;
}

img