C语言:十进制到八进制转换(用栈实现)
来源:互联网 发布:qq游戏hd登录网络异常 编辑:程序博客网 时间:2024/06/05 18:03
/*十进制到其它进制的转换*/# include <stdio.h># include <malloc.h># define N 8 //要转换成的进制# define INIT_SIZE 5 //栈的初始空间大小# define INC_SIZE 2 //栈空间增量//栈结构typedef struct{int * base; //指向栈底,也是栈空间的地址int * top; //始终指向有效元素的上一个位置int initsize; //栈的初始空间大小}Stack;void convert(int num); //进制转换void inital_stack(Stack &s); //初始化栈void push(Stack &s, int m); //元素入栈void pop(Stack &s, int * val); //元素出栈int main(void){int num;printf("请输入一个十进制数 num = ");scanf("%d", &num);convert(num);return 0;}//进制换换void convert(int num){int m; //记录余数int val; //保存出栈元素Stack s;inital_stack(s);while(0 != num) //当商为0时结束{m = num % N; //取模push(s, m);num = num / N;}printf("转换成%d进制为:", N);while(s.top != s.base){pop(s, &val);printf("%d", val);}printf("\n");}//初始化栈void inital_stack(Stack &s){s.initsize = INIT_SIZE;s.base = (int *)malloc(sizeof(int) * INIT_SIZE);s.top = s.base;}//元素m入栈void push(Stack &s, int m){//判断栈是否满,满则增加栈的容量if((s.top - s.base) >= s.initsize){s.base = (int *)realloc(s.base, sizeof(int) * s.initsize + INC_SIZE);s.initsize = s.initsize + INC_SIZE;}*(s.top) = m;s.top ++;}//元素出栈void pop(Stack &s, int * val){s.top --; *val =*(s.top);}
0 0
- C语言:十进制到八进制转换(用栈实现)
- C语言实现数值转换(十进制转八进制)
- 用栈的思想实现数制转换(十进制->八进制)
- 用两个栈实现二进制到八进制的转换C语言
- C语言实现十进制转八进制
- C++ 用栈实现十进制转换成八进制
- 十进制转换为二进制 八进制 ——用栈实现
- 链栈实现十进制向八进制转换
- C语言栈的实现及利用栈实现二进制到八进制的转换
- c语言之辗转相除法实现十进制转换为八进制
- 十进制到八进制的转换
- java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)
- C语言:八进制转十进制
- 用java语言实现各种进制转换(二进制,八进制,十进制,十六进制互转,主要使用Java Swing技术)
- c语言编程实现十进制到十六进制的转换
- 线性表_使用栈实现二进制转换到八进制/十进制/十六进制
- 数据结构(C语言版)数制转换,用栈来实现十进制换成八进制的数
- C++实现十进制转八进制(百练OJ:2734:十进制到八进制)
- Spring MVC JSON数据交互-解析和返回JSON
- iOS 多线程技术1
- 第一次使用linux并编写了一个dump mysql的程序,记录下简单的步骤
- Ubuntu15.10 安装sublimetext并解决乱码问题
- 机房收费系统(三)——由row和rows引发的错误
- C语言:十进制到八进制转换(用栈实现)
- IoBuffer常用方法
- CodeForces-483C Diverse Permutation
- 大数据系统的浅显易懂理解
- ULN2003的简单使用
- LeetCode OJ 之 LRU Cache(LRU缓存)
- 无符号整形
- Redis 数据结构
- tableview的两个获得重用cell方法dequeueReusableCellWithIdentifier的区别