题目描述

输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出。

输入

第一行输入需要转换的十进制数;
第二行输入R。

输出

输出转换所得的R进制数。

示例输入

1279
8

示例输出

2377
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
#define STACK_INIT_SIZE 100  //存储空间初始分配量
#define STACKINCREMENT 10//存储空间分配增量
#define OK 1
#define OVERFLOW -1
#define ERROR  -2
typedef int SElemType;
typedef struct
{SElemType *base;  //在栈构造之前和销毁之后, base的值为NULLSElemType *top;//栈顶指针;int stacksize; //当前已分配的存储空间,以元素为单位;
}SqStack;
void InitStack(SqStack &S)// 构造一个空栈S;
{S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base) exit(OVERFLOW);//存储分配失败;S.top=S.base;S.stacksize=STACK_INIT_SIZE;
}
void Push(SqStack &S,SElemType e)// 插入元素e为新的栈顶元素;
{if(S.top-S.base>=S.stacksize){S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); // 当前存储空间已满,增加分配;if(!S.base) exit(OVERFLOW);// 存储分配失败;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;//增加存储容量;}*S.top++=e;
}
int Pop(SqStack &S,SElemType &e)//若栈不空,则删除S的栈顶元素,并//用e返回其值,并返回OK,否则返回//ERROR;
{if(S.top==S.base) return ERROR;e=*--S.top;return OK;
}
int GetTop(SqStack S,SElemType &e)
{if(S.top==S.base) return ERROR;e=*(S.top-1);return OK;
}
void conversion(SqStack &S,int n,int r)//对十进制数n转换成r进制数;
{int t;while(n){t=n%r;n=n/r;Push(S,t);//进栈;}
}
void PutStack(SqStack &S)//栈内元素的输出;
{while(S.top>S.base){S.top--;printf("%d",*(S.top));}printf("\n");
}
int main()
{SqStack S;//栈的定义;InitStack(S);//栈的初始化;int n,r;scanf("%d\n%d",&n,&r);conversion(S,n,r);//十进制数n转换为r进制数;PutStack(S);//栈内元素的输出;return 0;
}

数据结构实验之栈一:进制转换相关推荐

  1. 数据结构作业--链栈实现进制转换

    十进制转换为2,8,16进制 #include <stdio.h> #include <stdlib.h> #include <string.h>/*此处是链栈数据 ...

  2. 数据结构学习笔记:利用栈实现进制转换

    数据结构学习笔记:利用栈实现进制转换 一.除基倒取余法示意图 二.编写十进制转换成二进制Python程序 1.源代码 2.运行结果 其实Python提供了一

  3. 数据结构实验三 用栈实现进制转换和计算器

    在c++中栈已经有stl容器定义过了,在这里面我就不写栈的定义的那部分了(因为太麻烦了) 进制转换非常简单,尤其是这次只要求了十以内进制的转换,我们只需要先输入要转换的进制t,然后输入要转换的数n,每 ...

  4. C语言中用栈实现进制转换,利用栈实现进制转换问题

    进制转换问题 建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换. 输入 输入只有一行,就是十进制整数. 输出 转换后的二进制数. 样例输入 10 样例输出 1010 十进制怎么转为二进制?十进制 ...

  5. 基础算法4 —— 结构体(成绩统计) + 栈(模拟进制转换 + 优秀的拆分) + 指针

    结构体 结构体的实际应用场景: 在实际问题中,一组数据往往具有不同的数据类型.比如,某次期末考试中要记录一个学生的考试信息,除了有姓名(char)外,还有班级(int).性别(char).语文.数学. ...

  6. 用C语言栈实现进制转换

    #include<stdio.h> #include<stdlib.h> #include<windows.h> #define MAXSIZE 100 typed ...

  7. C语言栈实现进制转换

    栈-10进制任意转换 设计思路 例如讲10进制转换为2进制计算思路为: 利用循环将每一个余数都压入栈中,再遍历出栈 转换代码: /*进制转换 */ scStack *sysConvert(int nu ...

  8. python【数据结构与算法】各进制转换-使用内置函数

    文章目录 1 其他进制向十进制之间的转换 2 十进制向其他进制之间的转换 2.1 使用内置函数来转换 2.2 使用字符串格式化来转化 1 其他进制向十进制之间的转换 string1 = '101010 ...

  9. js 栈(进制转换)

    <!DOCTYPE html> Document posted @ 2017-12-07 19:33 mysure 阅读(...) 评论(...) 编辑 收藏 刷新评论刷新页面返回顶部 转 ...

  10. 利用栈和递归实现进制转换——数据结构实验报告

    一.实验名称:栈的应用--进制转换 二.实验目的 熟练掌握栈的两种存储方式的具体实现过程,并分别使用递归和非递归两种方式,实现进制转换. 三.实验要求 顺序栈和链栈两种存储方式任选一种,实现从十进制到 ...

最新文章

  1. vivo Y93s的USB调试模式在哪里,打开vivo Y93sUSB调试模式的步骤
  2. 【译】Swift算法俱乐部-Boyer-Moore字符串搜索
  3. UITextField的属性与程序启动后一系列方法
  4. 用pytorch加载训练模型
  5. Scala里的类型擦除 - type erase
  6. 很火的WiFi6,了解一下
  7. 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心
  8. 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)
  9. 团队-象棋游戏-成员简介及分工
  10. python画猪头_使用Python画小猪佩奇 社会人标配
  11. JavaScript中的数组 1
  12. Unity Shader播放序列帧动画
  13. linux上apache的安装
  14. Atitit 知识结构化的艺术 目录 1. 知识信息结构化脑图 2 1.1. 散乱化模式 2 2. 直线排列 2 2.1.1. 直排 2 2.1.2. 链表模式 2 3. 树形排列 2 3.1.
  15. 改变PDF阅读器、CAJViewer的背景颜色
  16. RPGMakerMV学习笔记(二)—— 制作第一个RPG游戏
  17. BZOJ4049][CERC2014]Mountainous landscape-[线段树+凸包+二分]
  18. 昆明oracle考试点,Oracle认证考试知识点:修改sid的步骤
  19. 秦曾昌人工智能课程---1、机器学习中的数学基础
  20. Altium 拖动已布线的双排焊盘

热门文章

  1. 现代软件工程 第二章 【个人技术】 练习与讨论
  2. java 参数代替所有类_Java中的常用类
  3. 数据增强 transform_深度学习-Pytorch框架学习之数据处理篇
  4. shell 停止tomcat_Linux停止tomcat运行
  5. 码工里开关灯为什么遮罩层在下面_装修公司为什么推荐无主灯设计?
  6. java修改已创建程序界面_Java应用程序的Web用户界面
  7. php 分布式数据库查询,分布式数据库
  8. r矢量球坐标系旋度_矢量与场论 | 场论
  9. python 实现显著性检测_强!汽车车道视频检测:python+OpenCV为主实现
  10. android 截图 listview,Android屏幕及view的截图实例详解