十进制转八进制 c语言
原理:
首先在栈底放入哨兵,接着用算法求出余数,把余数依次放入栈中, 然后取栈顶元素,并且出栈栈顶元素。
//十进制转八进制
#include"stdio.h"
#include"stdlib.h"
#define maxsize 100
typedef struct
{int data[maxsize];int top;
}link;void initializa(link *s)//初始化函数
{s->top=0;
}int empty(link *s)//判栈空函数
{if(s->top==0)return 1;elsereturn 0;
}int enter(link *s,int x)//进栈函数
{if(empty(s)==maxsize-1){printf("此栈已满\n");return 0;}else{s->top++;(s->data)[s->top]=x;}return 1;
}int out(link *s,int *x)//出栈函数
{if(empty(s)==1){printf("此栈为空\n");return 0;}else{*x=(s->data)[s->top];s->top--;}return 1;
}int gettop(link *s,int *x)
{if(empty(s)==1){printf("无顶可取\n");return 0;}else{*x=(s->data)[s->top];}return 1;
}void transform(unsigned x)//转换函数
{unsigned y=0;link *s;s=(link *)malloc(sizeof(link));initializa(s);//初始化函数enter(s,'#');//进栈函数,注意这个# 是个字符,要加双引号while(x!=0){enter(s,x%8);x=x/8;}while(1)//存在栈顶元素{gettop(s,&y);//将栈顶元素(也就是最后一个元素)放到y中if(y!='#'){printf("%d",y);out(s,&y);//出栈函数,将最后一个元素剔除}elsebreak;}
}int main()
{unsigned x;//无符号x,也就是不能是负数printf("请输入要转换的十进制数:\t");scanf("%d",&x);printf("十进制转八进制的结果为:\t");transform(x);printf("\n");return 0;
}
运行之后:
十进制转八进制 c语言相关推荐
- 顺序栈十进制转八进制C语言,顺序栈实现十进制跟八进制之间的转换
顺序栈实现十进制和八进制之间的转换 顺序栈实现十进制和八进制之间的转换 (1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack( struct sq ...
- c语言计算十进制转八进制,C语言 十进制数转换八进制 算法
方法一:直接使用控制字符串 %o 八进制%x 方法二: 求余来算,比如求十进制数 x(x>100) 的8进制,先通过 x%8 可以得到个位(末位)上的数,当十进制数等于8时,必然会进位,求 ...
- c语言怎么十进制转八进制,C语言:输入一个十进制转化成八进制输出
2018-06-06 根据输入的年月日,输出该日为该年度的第几周.第几天. //根据输入的年月日,输出该日为该年度的第几周.第几天.星期几. //如输入: 2007,12,1 //则输出: 48z,3 ...
- C语言 十进制和八进制相互转换 - C语言零基础入门教程
目录 一.十进制和八进制区别 1.基数不同 2.有效字符不同 3.用途不同 二.十进制转八进制 三.八进制转十进制 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >& ...
- 编程c语言 十进制转八进制_使用C编程语言处理八进制值
编程c语言 十进制转八进制 Octal value has 8 digit values from 0 to 7, with the base 8. (Read more about Computer ...
- C语言十进制,八进制,十六进制输出分析
C语言可以使用三种数制表示数字,十进制,八进制,十六进制. 八进制以0开头,十六进制以0X或0x开头,即使你使用%d打印,编译器也会认为你输入的是八进制. 比如我们输入020. int x=020; ...
- 八进制转换成十进制c语言程序,C语言程序 十进制、八进制、十六进制的相互转化...
#include #include void main() { //*************************************** // 把十进制转化为十六进制与八进制 //***** ...
- 八进制转十六进制c语言程序,C语言程序 十进制、八进制、十六进制的相互转化...
十进制.八进制.十六进制的相互转化,习题版! #include #include void main() { //*************************************** // ...
- C语言十进制转八进制、十六进制以及十六进制转十进制、八进制
以下程序的输出结果是 main(){ int a=20; printf("%d,%o,%x\n",a,a,a); } 看到这个题目首先我们要明白%o 和 %x代表的是什么意思 %o ...
最新文章
- flex Scroller
- Unity动画系统经验谈:换装系统与骨骼调节
- SpringMVC4返回json
- 大型程序是如何开发的_大型小程序如何研发提效
- C#LeetCode刷题之#628-三个数的最大乘积( Maximum Product of Three Numbers)
- 高中理科不好学计算机,高一理科很差但想学理咋办
- 面向过程编程与面向对象编程
- 结构体转map[string]interface{}的若干方法
- SQL语句BETWEEN
- vue-json-editor实现json编辑器并且可以正常输入中文
- VMware8安装教程
- python fundamental structure_Data Structures and Algorithms in Python
- C语言入门-绝对值(abs)
- gfsj (logmein)
- 第36届福州赛区1009 Squiggly Sudoku 解题报告
- Vue进阶(三十六):created() 详解
- Scala基础教程--10--数组列表与函数式编程
- FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社
- 根据物理公式在Unity中实现抛物线运动.2
- fixed wideband beamformer
热门文章
- tp框架融入短信发送和验证
- Zabbix-低级自动发现
- nginx实战(二) WebDAV 模块 http_dav_module
- SCIEEI1区智能传感器类征稿通知
- 用devc++表白_惠院表白墙第423期丨晓看天色暮看云,行也思君,坐也思君
- 一文详解常见医学自然语言理解任务和算法
- 大数据联合实验室落户青羊区
- Linux 命令(243)—— indent 命令
- phpcms 多站点配置
- WebDriver·TestNg学习日志(Java/Ruby/.Net版)