正文

用栈做的数制转换(十进制转换为八进制)2006-05-12 16:04:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/tld5yj/13951.html

分享到:

这是我用栈实现的十进制数转换为八进制数,其他进制转换同理,由于是在Turbo C++ 3.0上编写的,所以在Turbo C 2.0 或其他版本的C编译工具上可能不能通过编译而成为可执行文件。

#define maxlength 20
#include<malloc.h>
typedef struct stacknode
{int *base;
 int *top;
 int length;
}stack;

stack *initstack()
{stack *S;
 (*S).base=(stack*)malloc(maxlength*sizeof(stack));
 if(!(*S).base)exit(0);
 (*S).top=(*S).base;
 return(S);
}

stack *push(stack *S,int r)
{*(*S).top++=r;
 if((*S).top-(*S).base>=maxlength)
 {(*S).top=(int*)realloc((*S).base,sizeof(int));
  *(*S).top++=r;
 }
 return(S);
}

int pop(stack *S)
{int r;
 if((*S).top==(*S).base)exit(0);
 r=*(--(*S).top);
 return(r);
}

void main()
{stack *S;
 int n,m;
 printf("Please input the number you want to convert:");
 scanf("%d",&n);
 printf("\n");
 S=initstack();
 while(n!=0)
 {push(S,n%8);
  n=n/8;
 }
 while(S!=NULL)
 {m=pop(S);
  printf("%d",m);
 }
}

 

阅读(6702) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册