/*

十进制到其它进制的转换

*/

# include

# include

# 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);

}

C语言用栈写八进制,C语言:十进制到八进制转换(用栈实现)相关推荐

  1. 单表带换密码C语言程序,帮忙写个C语言程序!题目在下面!关于链表的。还没学,题目:“建立一个链表,逐个输入字符,每一个字符存放在一个链。...

    帮忙写个C语言程序!题目在下面!关于链表的.还没学,题目:"建立一个链表,逐个输入字符,每一个字符存放在一个链. Posted By : Admin 2016-05-16 21:16 网友问 ...

  2. c语言方括号中写负数,c语言方括号的用法

    c语言方括号的用法 2020-03-31 C语言中方括号是用来定义数组的表示数组的长度,而大括号是用来赋初始值的,表示这个变量的取值,下面小编就来为大家介绍c语言方括号的用法. 1.单中括号 [] ① ...

  3. cf方框透视易语言代码怎么写_易语言真的那么不入流吗?

    很多人鄙视易语言,为什么那么多人一提易语言,除了骂,还是骂,易语言很大错误吗? 知乎上的大神们是这么说的 一个语言的"入流",和是不是英文关键字无关,而是和这种语言进入某一子行业的 ...

  4. c语言api函数写病毒,C语言病毒代码,及写病毒简单介绍

    编制病毒的语言 最常见的编制病毒的语言有汇编语言.VB.C 语言等,我们可以来看一看一个有名的病毒论坛上认为学写病 毒要掌握的基础: 1).Win32编程,进程,线程,内存,等等. 2).32位汇编, ...

  5. c语言自定义函写计算器,C语言实现计算器功能

    <C语言实现计算器功能>由会员分享,可在线阅读,更多相关<C语言实现计算器功能(11页珍藏版)>请在人人文库网上搜索. 1.实验1多功能计算机一.问题的说明设计一台能完成基本计 ...

  6. 小朋友学C语言(23):二进制与十进制之间的转换

    在学本节之前,请先复习 小朋友学C语言(17):二进制 一.二进制转换为十进制的C语言代码 #include <stdio.h> #include <string.h>int ...

  7. c语言顺序栈完整程序,顺序栈的基本操作(C语言)

    由于现在只学了C语言所以就写这个C语言版的栈的基本操作 这里说一下 :网上和书上都有这种写法 int InitStack(SqStack &p) &p是取地址  但是这种用法好像C并不 ...

  8. 二进制、十进制、八进制、十六进制转换

    这是一节"前不着村后不着店"的课.不同进制之间的转换纯粹是数学上的计算.不过,你不必担心会有么复杂,无非是乘或除的计算. 生活中其实很多地方的计数方法都多少有点不同进制的影子. 比 ...

  9. 顺序栈十进制转八进制C语言,顺序栈实现十进制跟八进制之间的转换

    顺序栈实现十进制和八进制之间的转换 顺序栈实现十进制和八进制之间的转换 (1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack(  struct  sq ...

  10. 是栈还是队列c语言实验报告怎么写,队列和栈(C语言)

    栈和队列的基本性质 栈是先进后出的结构(弹夹) 队列是先进先出的(排队) 栈和队列在实现结构上可以有数组和链表两种方式 栈结构的基本操作: 1.弹栈 2.访问栈顶元素 3.压栈操作 4.返回当前栈中的 ...

最新文章

  1. IBM的医疗AI为何失败
  2. (52)系统调用阶段测试——基于 SSDT HOOK 的 FindWindowA 监视器
  3. 实现带下拉菜单的工具栏按钮
  4. 如何删除webstrom中生成的.idea wrokspace
  5. mysql教程目录_MySql目录(二)
  6. Mac IDA单步调试本地程序
  7. java服务器 protobuf_服务器端用PHP,客户端用JAVA,通过protobuf互相通信[原创] | 学步园...
  8. 树莓派64位系统_玩转树莓派之安装系统
  9. SAP ABAP代码下载 备份
  10. 深信服SCSA安全认证工程师
  11. 小米硬盘路由器服务器,小米路由零售版699元 1T硬盘定位家庭服务器
  12. linux 如何删除gpt分区,Centos 7下如何删除GPT分区
  13. 聚合支付与智能POS
  14. 关于图文识别功能相关技术的大致实现
  15. 操作系统 | Mac如何更新word中的域
  16. 特征值与奇异值的对比及应用
  17. php和c#短信接口,C#代码示例_短信接口 | 微米-中国领先的短信彩信接口平台服务商...
  18. 常用的正则表达式(用户名、密码、邮箱)
  19. 古代赌局 俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。 有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把
  20. 华工计算机组成原理试卷,华工 2014计算机组成原理 作业答案

热门文章

  1. C/C++ 使用 CRC32 检测内存映像完整性
  2. 搭建文件下载服务CentOS Apache服务
  3. django搜索 关键字 全文检索haystack 搜索分词数据库
  4. Vert.x中文文档
  5. CSS---background属性及其属性值
  6. 2020面试题合集之吊打面试官系列(一),农民工看完都会了
  7. QQ农场启示录之:坐忘峰的盈利模式
  8. 如何修復“Windows無法完成格式化”
  9. Makefile的使用
  10. 【HCIP】数据链路层封装技术、GRE及实验(eNSP)