正文

用栈做的数制转换(十进制转换为八进制)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); }}  

阅读(6840) | 评论(0)


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

评论

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