#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int* base
;
int* top
;
int maxsize
;
}SqStack
;
void InitStack(SqStack
&s
)
{
s
.base
=(int*)malloc(MAXSIZE
*sizeof(int));
if(!s
.base
)
{
exit(0);
}
s
.top
=s
.base
;
s
.maxsize
=MAXSIZE
;
}
bool
push(SqStack
&s
,int e
)
{
if(s
.top
-s
.base
==MAXSIZE
)
{
return false
;
}
*s
.top
=e
;
s
.top
++;
return true
;
}
bool
put(SqStack
&s
, int &e
)
{
if(s
.base
==s
.top
)
{
return false
;
}
int *p
=s
.top
-1;
e
=*p
;
s
.top
--;
return true
;
}
void DisStack(SqStack s
)
{
int e
;
while(true
)
{
put(s
,e
);
printf("%d",e
);
if(s
.top
==s
.base
)
{
break;
}
}
}
int main()
{
while(true
)
{
SqStack s
;
int n
,n1
;
printf("请输入数值: ");
scanf("%d",&n
);
InitStack(s
);
while(n
)
{
push(s
,n
%8);
n
=n
/8;
}
printf("八进制: ");
DisStack(s
);
printf("\n");
printf("----------------\n");
printf("结束?(1||0)\n");
scanf("%d",&n1
);
if(n1
==1)
{
break;
}
}
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-4820249.html