a .h头文件 #include<malloc.h> #include<stdio.h> #include<stdio.h> #define size 100 typedef struct { int * base; int * top; int stacksize; }sqstack; sqstack initstack(); int stackempty(sqstack &e); void push(sqstack &m,int &a); void pop(sqstack &n,int &b); a.cpp文件 #include<stdio.h> #include"a.h" sqstack initstack() { sqstack s; s.base=(int *)malloc(size*sizeof(sqstack)); s.top=s.base; s.stacksize=size; return s; } int stackempty(sqstack &e) { if(e.base==e.top)return 1; else return 0; } void push(sqstack &m,int &a) { * m.top++=a; } void pop(sqstack &n,int &b) { if(n.top==n.base)printf("栈为空"); else b=*--n.top; } main.cpp文件 #include<stdio.h> #include"a.h" int main(void) { int a,b,c; sqstack s; s=initstack(); printf("请输入要转换成二进制的整数/n"); scanf("%d",&a); while(a) { c=a%2; push(s,c); a=a/2; } while(!stackempty(s)) { pop(s,a); printf("%d",a); } printf("/n"); return 0; } 实验结果截图: