2021-10-27

2023-05-16

十进制整数转换,使用链栈实现,实验报告

  1. 内容:
    将十进制整数num转换为r进制数,其转换方法为辗转相除法,要求用链栈实现

  2. 算法分析:
    程序中设计了四个函数:
    ➢函数IiStack用来初始化一个顺序栈:
    ➢函数Emply(用来实现栈的判空操作:
    ➢函数 Pop0用来实现元素的出栈操作:
    ➢函数Convert)用来实现数制转换算法。
    数值转换问题需要用到栈的基本操作,程 序中用三个函数分别实现链栈的入栈、判断栈空和出栈操作。主函数有两个输入,即输入待转化的数和要转化的进制,函数Convert算法思想为:对待转换的数先判断正负,用f–else 语句分别实现正数和负数的转化,转换的思想是利用算数运算中的取余和取整操作,借助于栈的操作,进行辗转相除来实现。

  3. 概要设计:
    dates
    -Push(linkstack* top, datatype x):int
    -Empty(linkstack top):int
    -Pop(linkstack* top,datatype*x):int
    Convert(int num, int mode):void

  4. 源码

/* author:雷玉莹  
 time:2021年10月14日16.10   
 version:1.0 
 description:将十进制整数num转换为r进制数,转换方法为辗转相除法。    
 本设计使用链栈实现,程序中设计了四个函数:                       函数InitStack()用来初始化一个顺序栈;                  函数Empty()用来实现栈的判空操作;                  函数Pop()用来实现元素的出栈操作;                  函数Convert()用来实现数值转换算法。*/#include<stdio.h>
 #include<stdlib.h>
 typedef int datatype;
 typedef struct node
 {    
 datatype data;   
 struct node* next;}
 *linkstack;/*入栈*/
 int Push(linkstack* top, datatype x){    linkstack s = (linkstack)malloc(sizeof(struct node));    if (s == NULL)   
  return 0;  
  s->data = x;  
  s->next = (*top);  
    (*top) = s;  
     return 1;}/*判空*/int Empty(linkstack top){
      if (top == NULL) 
     return 1;    
     return 0;}/*出栈*/
     int Pop(linkstack* top, datatype* x){   
      if (top != NULL)  
        {       
         linkstack p = (*top);           (*x) = (*top)->data;    
 (*top) = (*top)->next;    
     free(p);      
       return 1;    }   
        return 0;}/*十进制整数转换为任意进制数*/
        void Convert(int num, int mode){    int h;  
          linkstack top = NULL;    printf("转换结果为:"); 
           if (num > 0) 
              {        while (num != 0)        {            h = num % mode;            Push(&top, h);   
                       num = num / mode;        }    
                           while (!Empty(top))    
                               {            Pop(&top, &h)printf("%d", h);        }        printf("\n");    }    else if (num < 0)    {        printf("-");        num = num * (-1);        while (num != 0)        {            h = num % mode;            Push(&top, h);            num = num / mode;        }        while (!Empty(top))        {            Pop(&top, &h);            printf("%d", h);        }        printf("\n");    }    else        printf("%d\n", 0);}void main(){    int num, mode;    printf("\n 输入要转化的数:");        scanf_s("%d", &num);    printf("输入要转化的进制:");    scanf_s("%d", &mode);    Convert(num, mode);}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-10-27 的相关文章

  • 高翔讲课2021/8/12

    一些笔记精选 xff1a ORBSLAM 学界业界受欢迎的 有些扫地机器人就是直接用ORBSLAM做的 从代码质量到开放程度 xff0c ORB是个不错的选择 GPS本身频率低 xff0c 精度差 xff08 10m左右 xff09 xff
  • 2021 CondaHTTPError: HTTP 000 CONNECTION FAILED for url 的问题终极解决方案

    一 首先执行命令 xff0c 查看自己的镜像源 conda config show channels 二 可以首先删除已经存在的镜像源 xff08 注 xff1a 上述三个镜像源无需删除 xff01 xff01 xff01 xff09 xf
  • FreeRTOS源码学习_01-任务调度器-2021-10-28

    FreeRTOS源码学习 01 任务调度器 一 写在前面二 源码分析1 开始任务调度 xff1a void vTaskStartScheduler 2 创建软件定时器任务 xff1a 3 检查链表队列是否有效 xff1a prvCheckF
  • 2021-06-25 SONiC 系统BGP配置命令

    2021 06 25 SONiC 系统BGP配置命令 SONiC系统BGP配置 SONiC系统所默认包含的BGP模块在201811版的SONiC之前是开源的Quagga软件 xff0c 之后改成了更流行的FRR FRR中的Show命令是以
  • 2021-08-20 SONiC中的FRR和Zebra

    2021 08 20 SONiC中的FRR和Zebra SONiC中采用FRR和Zebra处理路由协议 以前写过SONiC系统所默认包含的BGP模块在201811版的SONiC之前是开源的Quagga软件 xff0c 之后改成了更流行的FR
  • uC/OS-III源码下载(版本2009-2021)

    uC OS III源码下载 xff08 新版网站 xff09 下载方式一 官网 xff08 即GitHub方式 xff09 二 CSDN 下载方式 一 官网 xff08 即GitHub方式 xff09 链接 uCOS3官网 点击CODEBA
  • 2021-09-27

    虚拟环境中用pip下载安装包却安装到base环境解决方案 原因解决方案 遇到的问题 xff1a windows环境下进入虚拟环境 xff0c 使用pip install指令安装包时发现没有安装到虚拟环境下 xff0c 而是安装到了base环
  • MySQL数据库面试题(2021最新版)

    文章目录 1 数据库基础知识为什么要使用数据库什么是SQL 什么是MySQL 数据库三大范式是什么MySQL有关权限的表都有哪几个MySQL的binlog有有几种录入格式 xff1f 分别有什么区别 xff1f 2 引擎MySQL存储引擎M
  • 2021蓝桥杯B组 G题砝码称重

    题目大意 xff1a 解法一 xff1a 首先想到的是可以用广度优先搜索的方式来进行暴力求解 xff0c 通过使用递归来将每一种方法遍历 xff0c 并且标记 xff0c 不过由于此方法的时间复杂度是O n3 故使用暴力搜索只能完成50 的
  • 2021-03-19

    输出 数字直角三角形 1 2 3 4 5 6 7 8 9 10 11 12 可根据需要增加行数 public class trangle 64 param args public static void main String args T
  • 2021-08-30 创建tensor时,注意不要让梯度消失了

    下面这种是错误的 xff0c 梯度会消失 data span class token operator 61 span torch span class token punctuation span tensor span class to
  • 2021互联网大厂职级对应薪资一览表

    原文连接 xff1a https mp weixin qq com s nYNZjJJzrO0Sc5h2AEPnaQ 互联网大厂新入职员工各职级薪资对应表 xff08 技术线 xff09 图片数据来源 xff1a 知乎加 上面的表格不排除有
  • 2021-02-13

    昨天学习了关于位运算的一些常识 xff0c 自己也跟着视频敲了一些位运算代码如下 xff1a package com raisecom tiap ems basic mgt domain acl import java util Array
  • 2021-03-16

    hullib Rtc 获取时间之后必须获取日期他才会有时间 HAL RTC GetTime amp hrtc amp sTime RTC FORMAT BIN HAL RTC GetDate amp hrtc amp sDate RTC F
  • UCOSIII从官网(2021)下载

    官网地址 xff1a https www silabs com developers micrium 注意 xff1a 在进入下载前 可能 要注册一个账号 xff0c 如果可以直接下载的话不用注册也可以 xff0c 如果有小伙伴需要注册账号
  • 2021-10-10 解决cmake报错:cmake The source directory “xxxx“ does not appear to contain CMakeLists.txt

    解决cmake报错 xff1a cmake The source directory xxxx does not appear to contain CMakeLists txt 执行 cmake命令时报错 xff1a The source
  • 2021-05-14 Redis面试题 redis 部署生产环境

    redis 部署生产环境 redis cluster xff0c 10 台机器 xff0c 5 台机器部署了 redis 主实例 xff0c 另外 5 台机器部署了 redis 的从实例 xff0c 每个主实例挂了一个从实例 xff0c 5
  • 2021-01-18

    求助 xff0c 关于Ubuntu20 04安装网络调试助手打不开的问题 我在虚拟机上安装了Ubuntu20 04并安装了网络调试助手 xff0c 但却打不开 xff0c 运用了sudo apt get libqtgui4 amd64也没用
  • 2021校招_海康威视

    2021届海康威视面试 一面 xff1a 1 https与http协议的区别 2 Spring的启动过程 3 Springboot相比较Spring的优点 4 Linux修改文件权限命令 5 项目中所用到的技术 6 Restful风格 7
  • 2021-07-22

    MSP432在keil中通过CMSIS DAP下载程序出现cannot enter debug mode的解决办法 xff1a MSP432下载程序出现cannot enter debug mode 可以通过修改如下设置 Debug里面的两

随机推荐

  • Anaconda常用指令

    首先 进入cmd的方法 xff1a win 43 R打开运行窗口 xff0c 然后在运行窗口中输入cmd xff0c 回车 xff0c 进入命令行 然后 输入以下命令 xff1a conda activate 创建环境 xff1a cond
  • C#中的委托(Delegate)和事件 (Event)详解与使用范例

    一 委托 Delegate 1 委托 Delegate 简介 最近天气晴雨不定 你因为害怕打游戏时忘记在下雨时收衣服或者在天晴时把衣服挂出去 于是你委托好友小明在天气发生变化时打电话通知你 这就是一种委托 下面是这种委托的实例代码 定义一个
  • Unity Instantiate函数用于复制对象

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言 一 Instantia xff08 xff09 的使用方法 二 参数详解 1 Object original 2 Tran
  • [Unity][Bug记录] AnimationEvent has no function name specified!

    1 BUG记录 xff1a AnimationEvent has no function name specified 经过排查 xff0c 这是在动画Animation界面添加了空的动画事件 xff08 如图 xff09 一般是在一个点手
  • python中的class Solution(object):的含义与类继承与类、对象概念的详解

    目录 前言 1 什么是类 2 类的继承 总结 前言 我们会在python学习中遇到了如class Solution object 这种形如class className object 这种类定义 xff0c 与平常使用的class clas
  • 【python3】 函数指定参数类型,如:fun(self, s: str) -> str:

    目录 指定参数方法如下 xff0c 参考 GetStringSelf的定义 虽然能够指定参数类型 xff0c 当输入参数类型错误不会报错 返回值错误也不报错 总结 xff1a 今天突然发现了在python3中的函数定义可以指定参数了 因此写
  • 自相关函数与互相关函数

    转自 xff1a https blog csdn net denghecsdn article details 78848046 1 概念 相关函数是描述信号X s Y t xff08 这两个信号可以是随机的 xff0c 也可以是确定的 x
  • [错误记录]The ‘typing‘ package is an obsolete backport of a standard library package

    在使用pyinstaller时报错如下 xff0c The 39 typing 39 package is an obsolete backport of a standard library package and is incompat
  • [计算机通信网络]以太网的帧格式详解

    目录 一 前言 二 以太网的帧格式 Preamble xff08 前导码 xff09 xff1a SFD xff08 帧开始定界符 xff09 xff1a Destination Address xff0c Source Address x
  • [Linux]Windows使用ssh连接Linux虚拟机(mininet)

    作者 xff1a 清水寺丞 简介 xff1a 正在学习unity xff0c 数据库 xff0c 计算机通信网络和python 喜欢部署各种奇奇怪怪的小项目 喜欢就点个关注一起学习吧 目录 前言 xff1a 一 步骤 1 查看虚拟机IP地址
  • [SDN]使用mininet搭建单臂路由的VLAN网络

    作者 xff1a 清水寺丞 简介 xff1a 正在学习unity xff0c 数据库 xff0c 计算机通信网络和python 喜欢部署各种奇奇怪怪的小项目 喜欢就点个关注一起学习吧 前言 xff1a 本文实践了使用mininet来搭建一个
  • Spring整合MyBatis导致一级缓存失效问题

    熟悉MyBatis的小伙伴都知道MyBatis默认开启一级缓存 xff0c 当我们执行一条查询语句后 xff0c MyBatis会以我们查询的信息生成一个缓存key xff0c 查询的结果为value xff0c 存到一个map中 xff0
  • 用echarts写潮汐表,并处理后端传来的数据为潮汐表接口的数据

    这是后端传来的接口类型 xff1a 其中分别是今天 xff0c 昨天 xff0c 明天的数据 xff0c 一天24个小时 xff0c 分别为a0和a23表示 xff1b 后端接口数据如下 xff1a dom表单代码如下 xff1a lt d
  • 分类算法-Logistic Regression(逻辑回归)实战案例

    一 定义 逻辑回归是一种广义线性回归模型 xff0c 主要用于二分类 问题 xff08 也可以用于多分类 xff09 xff0c 具有简单 可并行化 解释性强的特点 xff0c 目前在各个领域使用的都非常频繁 逻辑回归的本质是假设数据服从伯
  • 快乐数算法

    def sum l n sum a 61 0 for i in str n sum a 43 61 int i 2 return sum a sum1 61 n 61 int input 请输入数字 while sum l n not in
  • 2021-04-26

    标题altium 相同原理图导入PCB厚如何避免重复建布局 思想 xff1a channel offset 使每个component的offset一致 方法 xff1a 步骤一 xff0c 选取其中一个布局好 xff0c 创建一个room1
  • 深度学习模型压缩与优化加速

    1 简介 深度学习 xff08 Deep Learning xff09 因其计算复杂度或参数冗余 xff0c 在一些场景和设备上限制了相应的模型部署 xff0c 需要借助模型压缩 优化加速 异构计算等方法突破瓶颈 模型压缩算法能够有效降低参
  • 选择排序算法(思路分析) [数据结构][Java]

    选择排序算法 思路分析 基本介绍 选择排序也属于内部排序的一种 是从 34 欲排序的数据 34 中 按照指定的规则选出某一元素 再根据规定交换位置后达到排序的目的 选择排序思想 以升序排序为例讲解 选择排序 Select Sorting 也
  • 2021-09-29

    第一次数据结构与算法作业 https share weiyun com Bfh1pSeJ 初学者 x1f913 xff0c 算法漏洞较多 希望各位大佬指点一下 xff0c 谢谢大家
  • 2021-10-27

    十进制整数转换 xff0c 使用链栈实现 xff0c 实验报告 内容 xff1a 将十进制整数num转换为r进制数 xff0c 其转换方法为辗转相除法 xff0c 要求用链栈实现 算法分析 xff1a 程序中设计了四个函数 函数IiStac