C语言用栈写八进制,C语言:十进制到八进制转换(用栈实现)
/*
十进制到其它进制的转换
*/
# 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语言:十进制到八进制转换(用栈实现)相关推荐
- 单表带换密码C语言程序,帮忙写个C语言程序!题目在下面!关于链表的。还没学,题目:“建立一个链表,逐个输入字符,每一个字符存放在一个链。...
帮忙写个C语言程序!题目在下面!关于链表的.还没学,题目:"建立一个链表,逐个输入字符,每一个字符存放在一个链. Posted By : Admin 2016-05-16 21:16 网友问 ...
- c语言方括号中写负数,c语言方括号的用法
c语言方括号的用法 2020-03-31 C语言中方括号是用来定义数组的表示数组的长度,而大括号是用来赋初始值的,表示这个变量的取值,下面小编就来为大家介绍c语言方括号的用法. 1.单中括号 [] ① ...
- cf方框透视易语言代码怎么写_易语言真的那么不入流吗?
很多人鄙视易语言,为什么那么多人一提易语言,除了骂,还是骂,易语言很大错误吗? 知乎上的大神们是这么说的 一个语言的"入流",和是不是英文关键字无关,而是和这种语言进入某一子行业的 ...
- c语言api函数写病毒,C语言病毒代码,及写病毒简单介绍
编制病毒的语言 最常见的编制病毒的语言有汇编语言.VB.C 语言等,我们可以来看一看一个有名的病毒论坛上认为学写病 毒要掌握的基础: 1).Win32编程,进程,线程,内存,等等. 2).32位汇编, ...
- c语言自定义函写计算器,C语言实现计算器功能
<C语言实现计算器功能>由会员分享,可在线阅读,更多相关<C语言实现计算器功能(11页珍藏版)>请在人人文库网上搜索. 1.实验1多功能计算机一.问题的说明设计一台能完成基本计 ...
- 小朋友学C语言(23):二进制与十进制之间的转换
在学本节之前,请先复习 小朋友学C语言(17):二进制 一.二进制转换为十进制的C语言代码 #include <stdio.h> #include <string.h>int ...
- c语言顺序栈完整程序,顺序栈的基本操作(C语言)
由于现在只学了C语言所以就写这个C语言版的栈的基本操作 这里说一下 :网上和书上都有这种写法 int InitStack(SqStack &p) &p是取地址 但是这种用法好像C并不 ...
- 二进制、十进制、八进制、十六进制转换
这是一节"前不着村后不着店"的课.不同进制之间的转换纯粹是数学上的计算.不过,你不必担心会有么复杂,无非是乘或除的计算. 生活中其实很多地方的计数方法都多少有点不同进制的影子. 比 ...
- 顺序栈十进制转八进制C语言,顺序栈实现十进制跟八进制之间的转换
顺序栈实现十进制和八进制之间的转换 顺序栈实现十进制和八进制之间的转换 (1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack( struct sq ...
- 是栈还是队列c语言实验报告怎么写,队列和栈(C语言)
栈和队列的基本性质 栈是先进后出的结构(弹夹) 队列是先进先出的(排队) 栈和队列在实现结构上可以有数组和链表两种方式 栈结构的基本操作: 1.弹栈 2.访问栈顶元素 3.压栈操作 4.返回当前栈中的 ...
最新文章
- IBM的医疗AI为何失败
- (52)系统调用阶段测试——基于 SSDT HOOK 的 FindWindowA 监视器
- 实现带下拉菜单的工具栏按钮
- 如何删除webstrom中生成的.idea wrokspace
- mysql教程目录_MySql目录(二)
- Mac IDA单步调试本地程序
- java服务器 protobuf_服务器端用PHP,客户端用JAVA,通过protobuf互相通信[原创] | 学步园...
- 树莓派64位系统_玩转树莓派之安装系统
- SAP ABAP代码下载 备份
- 深信服SCSA安全认证工程师
- 小米硬盘路由器服务器,小米路由零售版699元 1T硬盘定位家庭服务器
- linux 如何删除gpt分区,Centos 7下如何删除GPT分区
- 聚合支付与智能POS
- 关于图文识别功能相关技术的大致实现
- 操作系统 | Mac如何更新word中的域
- 特征值与奇异值的对比及应用
- php和c#短信接口,C#代码示例_短信接口 | 微米-中国领先的短信彩信接口平台服务商...
- 常用的正则表达式(用户名、密码、邮箱)
- 古代赌局 俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。 有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把
- 华工计算机组成原理试卷,华工 2014计算机组成原理 作业答案