栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
2017-04-21 19:53
281 查看
结果图:
代码如下:
代码如下:
#include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; typedef int ElemType; typedef struct StackNode{ ElemType data; struct StackNode *next; }StackNode,*LinkStack; void InitStack(LinkStack &s){ //初始化 s=(LinkStack)malloc(sizeof(StackNode)); s=NULL; } bool StackEmpty(LinkStack s){ //判空 return (s==NULL); } Status PushStack(LinkStack &s,ElemType e){ //入栈 LinkStack p=(LinkStack)malloc(sizeof(StackNode)); p->data=e; p->next=s; s=p; return OK; } Status PopStack(LinkStack &s,ElemType *e){ //出栈 LinkStack p=(LinkStack)malloc(sizeof(StackNode)); if(s==NULL) return ERROR; *e=s->data; p=s; s=s->next; free(p); return OK; } void main(){ LinkStack s; InitStack(s); int n,choice; ElemType e; printf("请输入一个十进制数:"); scanf("%d",&n); printf("请输入要转换的进制数:"); scanf("%d",&choice); switch(choice){ case 2: case 8: while(n) { PushStack(s,n%choice); n=n/choice; } while(s){ PopStack(s,&e); printf("%d",e); } printf("\n"); break; case 16: while(n){ PushStack(s,n%choice); n=n/choice; } while(s){ PopStack(s,&e); if(e>=10){ e+=55; printf("%c",e); } else{ printf("%d",e); } } printf("\n"); break; } }
相关文章推荐
- 栈的应用之二进制转换为十进制,八进制和十六进制
- 十进制数与二进制, 八进制, 十六进制之间的转换
- pycharm环境下进制转换-将十进制数转换为二进制、八进制、十六进制
- 二进制 八进制 十进制 十六进制的相互转换(精简总结)
- 【转载】java二进制、八进制、十六进制间转换详细
- php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
- 二进制、八进制、十进制、十六进制之间转换
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- java二进制、八进制、十进制、十六进制相互转换及位运算
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- 十进制 转换八进制和二进制 十六进制 转换器
- 二进制、八进制、十进制、十六进制之间转换
- 二进制、八进制、十进制、十六进制之间转换
- shell 脚本转换 十六进制 十进制 八进制 二进制
- linux-shell 脚本转换 十六进制 十进制 八进制 二进制
- 十进制、二进制、八进制、十六进制互相转换
- 黑马程序员——数组转换(二进制-八进制-十六进制)-第6天
- 二进制、八进制、十进制、十六进制之间的转换
- 十进制,八进制,十六进制,二进制相互转换大全
- C++ 二进制、十进制、八进制和十六进制 转换