数制转化

# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
# define stack_init_size 100
# define stackincrement 10
# define ok 1
# define error 0
struct sqstack{

 int *top;
 int *base;
 int stacksize;

};
int initstack(sqstack &s)
{
 s.base=(int *)malloc(stack_init_size * sizeof(int));
 if(!s.base){
 
  return error;
 }
 s.top=s.base;
 s.stacksize=stack_init_size;
 return ok;


}
int stackempty(sqstack &s)
{
 if(s.top==s.base){
 
  return ok;
 }
 else return error;


}
int push(sqstack &s,int e)
{
 if((s.top-s.base)>=s.stacksize)
 {
  s.base=(int *)realloc(s.base,(s.stacksize+stackincrement)*sizeof(int));
  if(!s.base)
  
   return error;
  s.top=s.base+s.stacksize;
  s.stacksize+=stackincrement;}
 *s.top++=e;

return ok;
}
int pop(sqstack &s,int &e)
{
 if(s.top==s.base)
  return error;
 e=*--s.top;
 return ok;


}
int main()
{
 int N,e;
 sqstack s;
 initstack(s);
 printf("ÇëÊäÈëÒ»¸öÊ®½øÖÆÊý£º");
 scanf("%d",&N);
 while(N)
 {
  push(s,N%8);
  N=N/8;
 
 }
 while(!stackempty(s))
 {
  pop(s,e);
  printf("%d",e);
  
 }
 
 return 0;


}

猜你喜欢

转载自www.cnblogs.com/P201821430014/p/11790697.html