运用栈实现十进制数转八进制。
#include"stdio.h"
#define max 10
typedef struct stack
{
int top;
int a[max];
}sqstack;
void initstack(sqstack &s)
{
s.top=0;
}
int full(sqstack s)
{
if(s.top==max) return 1;
else return 0;
}
int empty(sqstack s)
{
if(s.top==0) return 0;
else return 1;
}
void push(sqstack &s,int e)
{
if(full(s)==1) printf("full/n");
else
{
s.a[s.top]=e;
s.top++;
}
}
void pop(sqstack &s,int &e)
{
if(empty(s)==1) printf("empty");
else{
s.top--;
e=s.a[s.top];
}
}
void convesion(int n)
{
sqstack ss;
int stack(ss);
do{
push(ss,n%8);
n=n/8;
}while(n>0)
while(empty(ss)==0)
{
int x;
pop(ss,x);
printf("%d",x);
}
}
void main()
{
int n;
scanf("%d",&n);
conversion(n);
}