栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
来源:互联网 发布:js动态添加删除表格行 编辑:程序博客网 时间:2024/04/26 15:01
结果图:
代码如下:
#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1typedef 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; }}
0 0
- 栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
- 二进制,八进制,十六进制数转换为十进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 数制转换(十进制、二进制、八进制、十六进制)
- 数制的转换与表示(二进制、八进制、十进制、十六进制)
- 十进制转换为二进制数、八进制数和十六进制
- 栈的应用之二进制转换为十进制,八进制和十六进制
- 十进制负数转换为二进制、八进制、十六进制
- 十进制转换为二进制、八进制、十六进制。
- 十进制转换为二进制、八进制、十六进制
- 算法:十进制转换为十六进制,二进制,八进制
- 十进制转换为二进制、八进制、十六进制程序
- 十进制负数转换为二进制、八进制、十六进制
- 十进制负数转换为二进制、八进制、十六进制
- Java十进制转换为二进制、八进制、十六进制
- 常用算法(C#): 二进制,八进制,十六进制数转换为十进制数的算法
- 线程资源的回收
- C++第四次实验
- java计算长方形的周长和面积(类和对象)
- DAY5作业-结合盒子模型,优化DY4的卡片,同时也制作了一张新的卡片。
- ViewPager之无限轮播图
- 栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
- Python标准库:内置函数slice(stop) slice(start, stop[, step])
- SSL 2305——竞赛总分
- java
- Interference Signal
- 使用 Charles 获取 https 的数据
- lintcode 二叉树的所有路径
- Leetcode 477. Total Hamming Distance 自制答案
- 【51nod 1592】 数列积