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