原理:
首先在栈底放入哨兵,接着用算法求出余数,把余数依次放入栈中, 然后取栈顶元素,并且出栈栈顶元素。

//十进制转八进制
#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语言相关推荐

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

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

  2. c语言计算十进制转八进制,C语言 十进制数转换八进制 算法

    方法一:直接使用控制字符串    %o 八进制%x 方法二: 求余来算,比如求十进制数 x(x>100) 的8进制,先通过 x%8 可以得到个位(末位)上的数,当十进制数等于8时,必然会进位,求 ...

  3. c语言怎么十进制转八进制,C语言:输入一个十进制转化成八进制输出

    2018-06-06 根据输入的年月日,输出该日为该年度的第几周.第几天. //根据输入的年月日,输出该日为该年度的第几周.第几天.星期几. //如输入: 2007,12,1 //则输出: 48z,3 ...

  4. C语言 十进制和八进制相互转换 - C语言零基础入门教程

    目录 一.十进制和八进制区别 1.基数不同 2.有效字符不同 3.用途不同 二.十进制转八进制 三.八进制转十进制 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >& ...

  5. 编程c语言 十进制转八进制_使用C编程语言处理八进制值

    编程c语言 十进制转八进制 Octal value has 8 digit values from 0 to 7, with the base 8. (Read more about Computer ...

  6. C语言十进制,八进制,十六进制输出分析

    C语言可以使用三种数制表示数字,十进制,八进制,十六进制. 八进制以0开头,十六进制以0X或0x开头,即使你使用%d打印,编译器也会认为你输入的是八进制. 比如我们输入020. int x=020; ...

  7. 八进制转换成十进制c语言程序,C语言程序 十进制、八进制、十六进制的相互转化...

    #include #include void main() { //*************************************** // 把十进制转化为十六进制与八进制 //***** ...

  8. 八进制转十六进制c语言程序,C语言程序 十进制、八进制、十六进制的相互转化...

    十进制.八进制.十六进制的相互转化,习题版! #include #include void main() { //*************************************** // ...

  9. C语言十进制转八进制、十六进制以及十六进制转十进制、八进制

    以下程序的输出结果是 main(){ int a=20; printf("%d,%o,%x\n",a,a,a); } 看到这个题目首先我们要明白%o 和 %x代表的是什么意思 %o ...

最新文章

  1. _ISD-SMG518L2CT-F 海康威视测温人脸安检门 温度精度±0.5℃ 人脸抓拍金属探测
  2. 易优cms问一下大家 二级目录 真的完全不能装吗
  3. Practice:Office2010中OneNote与outlook的协同工作
  4. CodeForce 534C Polycarpus' Dice (数学推理)
  5. 为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录shen1: 设备上没有空间...
  6. JavaME:Google静态地图API
  7. 【APICloud系列|3】开发APP对UI的一般性要求
  8. 1分钟完美安装最新 CentOS + Nginx + PHP-FPM + MySQL
  9. #includebits/stdc++.h包含C++的全部头文件
  10. 互联网系统性能优化方向
  11. Linux中nginx安装基础教程
  12. unity package 包下载不下来
  13. 免费的18个开源快速建站Java CMS
  14. 从0开始的视频特效制作之路
  15. wifi连接一段时间才能上网_家里的WiFi老是突然断网,WiFi还是连着的,但是关WiFi又连不上去,必须重启路由器才能上网...
  16. stack容器—C++笔记
  17. 极端类别不平衡数据下的分类问题研究综述,终于有人讲全了!
  18. Flask框架之模板继承与案例05
  19. 职业生涯阶段性回顾之第一个五年计划
  20. 如鹏网C语言也能干大事精华帖

热门文章

  1. 中职计算机PPT触发器使用的教案,PPT触发器使用全攻略-实例讲解PPT触发器的设置和使用方法(2)...
  2. 雷鸟邮件使用_雷鸟插件使雷鸟更易于使用
  3. QStyledItemDelegate制作卡片
  4. 运行build.xml ,出现 Error starting Sun's native2ascii
  5. ACPI Spec Chapter 8 Processor Configuration and Control
  6. .NetCore使用Gma.QrCodeNet生成二维码显示VCard名片格式
  7. 如何退出linux命令find,find命令详解
  8. 手把手教写拖拽布局插件(辅助线功能篇)
  9. linux dev shm,使用Linux的/dev/shm
  10. 计算机英语个人陈述,美国留学关于计算机的个人陈述英文范文怎么写?