当前位置: 首页 > news >正文

设计程序,利用栈实现数值转换

二、利用栈实现数值转换,先定义一个栈的顺序存储结构,那么我们需要定义一个结构体,结构体里面有个int类型的数组,还有一个top用来存储栈顶元素的下标。栈是一种基本的数据结构,它遵循先进后出的原则。这意味着最后添加到栈中的元素将会首先被取出。栈通常具有两个主要操作:压栈:将元素添加到栈的顶部。出栈:从栈的顶部移除元素。输入转化之前的数,并且通过进制转化,计算出他的sum,再通过sum来转化成对应的进制,程序运行结果如图2-1。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>
#define Maxsize 100// 定义顺序栈的结构体
typedef struct SqStack
{int data[Maxsize];// 存储栈中元素的数组int top;// 栈顶指针
}SqStack;// 初始化栈
void Init_Sqstack(SqStack *S)
{S->top = -1;// 栈初始化为空,栈顶指针设为-1
}// 进栈操作
bool push_SqStack(SqStack *S,int x)
{if(S->top == Maxsize - 1)return false;// 栈满,返回falseelseS->data[++S->top] = x;// 元素x进栈,栈顶指针加return true;
}// 出栈操作
bool pop_SqStack(SqStack *S,int *x)
{if(S->top == -1)return false;// 栈空,返回falseelse{*x = S->data[S->top];// 将栈顶元素赋值给xS->top--;// 栈顶指针减1}return true;
}// 展示栈中元素
void show_SqStack(SqStack S)
{for(int i = S.top; i >= 0; i--){printf("%d ",S.data[i]);// 从栈顶开始打印栈中元素}
}// 将字符数组转换为对应进制的整数
int char_to_num(char *a,int x)
{int lenth = strlen(a);// 字符串长度int num[100];// 存储转换后的每一位数字int sum = 0;// 转换后的整数值for(int i = 0; i < lenth; i++){if(a[i] >= '0' && a[i] <= '9')// 如果是数字字符,转换为数字num[i] = (a[i]-'0');elsenum[i] = (a[i]-'A'+10);// 如果是字母字符,转换为对应的数字(A-F为10-15)}for (int i = 0; i < lenth; i++){sum += num[i] * pow(x, lenth - i - 1); // 按权展开求和}return sum;
}int main()
{SqStack S;Init_Sqstack(&S);// 初始化栈  printf("请输入想要转化前数的进制:");// 提示用户输入原数的进制int i;scanf("%d",&i);// 读取用户输入的进制 printf("\n请输入想转化后的进制:");// 提示用户输入目标进制int j;scanf("%d",&j);// 读取用户输入的目标进制printf("\n请输入想要转化的数:");// 提示用户输入需要转换的数char s[100];scanf("%s", s);// 读取用户输入的数int m;m = char_to_num(s,i);// 将字符数组转换为对应进制的整数// 将整数转换为目标进制的数,并依次入栈 while(m){push_SqStack(&S,m % j);// 取余数并入栈m = m / j;// 整除目标进制数}show_SqStack(S);// 展示栈中元素,即转换后的目标进制数  return 0;
}

图2-1 进制转化结果图

 

 

相关文章:

设计程序,利用栈实现数值转换

二、利用栈实现数值转换&#xff0c;先定义一个栈的顺序存储结构&#xff0c;那么我们需要定义一个结构体&#xff0c;结构体里面有个int类型的数组&#xff0c;还有一个top用来存储栈顶元素的下标。栈是一种基本的数据结构&#xff0c;它遵循先进后出的原则。这意味着最后添加…...

QSharedMemory使用详解

QSharedMemory 是 Qt 提供的一个类&#xff0c;用于在多个进程之间共享内存。它可以让您在不同的进程间传递数据&#xff0c;而无需通过文件或网络来进行传输。下面是 QSharedMemory 的详细用法和相关知识点。 一、基本概念 共享内存&#xff1a;共享内存是一块可以被多个进程…...

中电金信:保险业多项举措共绘数字化转型新篇章

...

Gartner发布2024年人工智能技术成熟度曲线:29项决定人工智能领域发展方向的前沿和趋势性技术

人工智能投资已达到新高&#xff0c;重点是生成式人工智能&#xff0c;但在大多数情况下&#xff0c;该技术尚未实现预期的商业价值。这项研究通过分析各种人工智能创新&#xff08;其中许多创新正在快速发展&#xff09;&#xff0c;帮助人工智能领导者确定其他值得投资的技术…...

顺势而为:雷军、小米与创业成功的深层思考

一、引言 在当今快速发展的商业环境中&#xff0c;成功的企业家如马云和雷军&#xff0c;都以其独特的商业智慧和不懈的勤奋精神赢得了业界的尊重。然而&#xff0c;当我们深入探讨他们的成功之道时&#xff0c;会发现一个更为核心的因素——“顺势而为”。本文将基于雷军对不…...

Java+ffmpeg 合并两个mp4文件

使用ffmpeg测试命令 ffmpeg -i "E:\Monitor\video_20240617_10.mp4" -i "E:\Monitor\video1_20240617_10.mp4" -filter_complex "[0:v][0:a][1:v][1:a]concatn2:v1:a1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a…...

汽车IVI中控开发入门及进阶(三十一):视频知识扫盲

有效的视频资源管理需要集成许多不同的底层技术,共同为用户提供给定应用程序的最佳体验。其中许多技术是从早期电视广播中使用的技术演变而来的。其他方法,如用于通过网络流式传输视频的压缩方法,相对较新且不断发展。 以下详细概述了与图形和视频处理和传输相关的一些基本…...

【后端】Java学习笔记(二周目-1)

环境 安装JDK8并配置环境变量 jvm核心类库jre jre开发工具jdk Java基础运行流程&#xff0c;代码从上到下&#xff0c;从左往右&#xff0c;只运行一次 桌面—>新建文件夹—>新建记事本—>打开编写代码 public class Hello{public static void main(String[] arg…...

PDF文档翻译软件哪个好?分享5款快速翻译的工具

世界各地的交流日益密切&#xff0c;文档翻译服务因此变得不可或缺。 无论是企业间的跨国商务合同&#xff0c;还是学术领域的专业研究论文&#xff0c;准确无误地将文档内容翻译成目标语言&#xff0c;对于保障信息的清晰传达和正确理解极为关键。 在这样的背景下&#xff0…...

哪些因素驱动新零售发展?新零售与传统零售、电子商务区别在哪?

零售业正经历着一场前所未有的变革&#xff0c;这场变革由多种因素驱动&#xff0c;涉及技术、消费习惯以及商业模式的全面升级。我们称之为”新零售”&#xff0c;它不仅仅是一个概念&#xff0c;更是零售业未来发展的方向。新零售的兴起&#xff0c;标志着零售行业正在迈向一…...

使用代理IP常见问题及解答

代理IP在互联网数据收集和业务开展中发挥着重要作用&#xff0c;它充当用户客户端和网站服务器之间的“屏障”&#xff0c;可以保护用户的真实IP地址&#xff0c;并允许用户通过不同的IP地址进行操作。然而&#xff0c;在使用代理IP的过程中&#xff0c;用户经常会遇到一些问题…...

重磅!鹅厂大牛带你30分钟玩转AI智能结对编程!

在大模型时代&#xff0c;人工智能技术的突破性进展正重塑着软件开发的面貌。AI的融入不仅优化了代码编写过程&#xff0c;更开启了智能编程的新纪元&#xff0c;为开发者带来了前所未有的工作效率和创新可能。AI结对编程不仅能够极大提升研发效率&#xff0c;还能通过智能分析…...

研究Redis源码的一些前期准备

一 背景 Redis数据结构讲完后&#xff0c;觉得还是有点不过瘾&#xff0c;想研究一下Redis的底层实现。找了一些相关资料&#xff0c;准备借鉴和学习其他各位大佬钻研Redis底层的方法和经验&#xff0c;掌握Redis实现的基本原理。 二 源码归类 网上有大佬已经总结了…...

用PHP来调用API给自己定制一个“每日新闻”

头条新闻汇聚了互联网上的时事动态&#xff0c;提供最新新闻动态、网络热门话题和视频更新等&#xff0c;覆盖社会、政治、体育、经济、娱乐、科技等多个领域&#xff0c;并不断刷新内容。企业应用这一接口后&#xff0c;可以快速吸引更多的用户访问自己的平台。即使是非新闻类…...

AGI时代,程序员想学习大语言模型(LLM),应该从哪里开始?

程序员25岁做什么能够改变35岁被淘汰的命运&#xff1f;对于程序员的新一轮革命&#xff0c;我觉得人工智能大模型方向是你可以认真审视的一个方向&#xff0c;你可以选择通过它创业&#xff0c;也可以选择进入这个领域&#xff0c;它是一个更加开放的领域&#xff0c;也让程序…...

Vue在表单校验中trigger属性指定何时触发校验规则

Vue在表单校验中trigger属性指定何时触发校验规则 一、前言1.示例代码 一、前言 在表单校验中&#xff0c;trigger 属性用于指定何时触发校验规则。常见的触发方式包括 "change" 和 "blur". 它们的区别如下&#xff1a; trigger: "change": 触发…...

【多线程实例】

使用场景 拿到了一个商品的list,然后要循环list去获取每个商品的明细&#xff0c;由于调用api很依赖于网络&#xff0c;一个个执行速度慢&#xff0c;所以考虑使用线程去解决。 //根据机器id 获取 所有商品信息 public List<ProductResponse> productList(MachineConf…...

数据治理在数据提取中的角色:确保数据质量和安全

在数字化浪潮中&#xff0c;数据已成为企业运营和决策的核心驱动力。然而&#xff0c;随着数据量的快速增长和来源的多样化&#xff0c;如何确保所提取数据的质量和安全性成为企业面临的重大挑战。数据治理&#xff0c;作为一种系统的管理方法&#xff0c;在数据提取过程中扮演…...

Nuxt快速学习开发 - Nuxt3静态资源Assets

Nuxt 使用两个目录来处理样式表、字体或图像等资产。 public/目录内容按原样在服务器根目录中提供。 assets/目录包含您希望构建工具&#xff08;Vite 或 webpack&#xff09;处理的所有资产。 public/目录 public目录用作静态资产的公共服务器&#xff0c;可在您的应用程序定…...

为什么企业需要数据挖掘平台?哪个比较好呢?

什么是数据挖掘&#xff1f; 数据挖掘就是从大量的数据中去发现有用的信息&#xff0c;然后根据这些信息来辅助决策。听起来是不是跟传统的数据分析很像呢&#xff1f;实际上&#xff0c;数据挖掘就是智能化的数据分析&#xff0c;它们的目标都是一样的。但是&#xff0c…...

leetCode-hot100-链表专题

leetCode-hot100-链表专题 链表简介单链表单链表的使用例题206.反转链表19.删除链表的倒数第N个结点24.两两交换链表中的节点25.K个一组翻转链表 双向链表双向链表的使用 循环链表61.旋转链表141.环形链表142.环形链表Ⅱ LinkedListLinkedList的使用 链表简介 参考博客&#x…...

【ai】tx2-nx:配置tritonserver2.17.0-jetpack4.6 环境并运行例子

2.17.0 for jetpack 4.6运行需要 如果在jetson上构建Triton : Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.21.0. Below is a script to upgrade your cmake version to 3.21.0. You can use cmake 3.18.4…...

Spring和Spring Boot常用注解介绍及使用

Spring和Spring Boot框架通过丰富的注解集简化了Java开发&#xff0c;使得配置更加简洁且易于理解。 下面是一些常用的Spring和Spring Boot注解及其使用方式的简介&#xff1a; 目录 1. Component 2. Service 3. Repository 4. Controller 5. RestController 6. Autowire…...

【计算机毕业设计】211校园约拍微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

笨蛋学算法之LeetCodeHot100_1_两数之和(Java)

package com.lsy.leetcodehot100;public class _Hot1_两数之和 {//自写方法public static int[] twoSum1(int[] nums, int target) {//定义存放返回变量的数组int[] arr new int[2];//遍历整个数组for (int i 0; i < nums.length; i) {//从第二个数开始相加判断for (int j…...

用ip link add link命令创建vlan子设备

用ip link add link命令创建vlan子设备 ip link add link 命令用于在 Linux 系统中创建网络设备&#xff0c;其中可以用它来创建 VLAN (Virtual Local Area Network) 子接口&#xff0c;这是一个典型的用法。 VLAN是一种在二层网络&#xff08;即数据链路层&#xff09;上区分…...

AD复用布局布线

在用AD软件绘制PCB时&#xff0c;如果有多个部分布线相同&#xff0c;则可以使用复用布局布线功能&#xff0c;加快并且方便PCB的绘制。 一、创建Room 1、绘制好的电路图创建Room 2、需要拷贝的电路图创建Room 二、PCB List操作 1、PCB List内设置 2、复制绘制完的线路图 3、…...

【深度学习驱动流体力学】采集OpenFOAM仿真的流体力学数据送入到强化学习DQN模型训练

目录 技术原理1. 数据准备与环境构建2. DQN模型的设计与训练3. 训练过程中的监控与可视化训练记录参考技术原理 1. 数据准备与环境构建 首先,数据从VTK文件中读取并处理,这些文件包含流体速度场数据。通过PyVista库提取速度场信息,并将其存储在NumPy数组中。数据集随后被划…...

国内公开数据

以下是一些关于国内政府部门公布的数据或互联网上开放数据的资源&#xff0c;包括CSV、JSON和Parquet格式&#xff1a; 国内政府部门公开数据 中国政府数据开放平台 链接: 数据开放平台概要: 提供来自中国各级政府的公开数据集&#xff0c;数据格式包括CSV、JSON等。 上海市公…...

QT QByteArray 的用法

QByteArray 是 Qt 中用于处理原始字节数据的类&#xff0c;类似于标准库中的 std::vector<char> 或 std::string&#xff0c;但具有更多适合Qt框架的功能。它可以用来处理文本和二进制数据&#xff0c;并提供了一些方便的方法进行数据操作。下面是一些常见的用法示例&…...

网站前端建设都需要什么/手机端怎么刷排名

C#编码规范 1&#xff0e;命名规则与风格(naming conventions and style) 1&#xff0e;1命名规则 1&#xff0e;1&#xff0e;1 变量命名规范 类型 前缀 示例 Array arr arrShoppingList Boolean bln blnIsPostBack Byte byt bytPixelValue Char chr chrDelimit…...

如何做网站报价/搜索引擎大全网址

名称空间: 用来存放名字(变量, 函数名, 类名, 引入的模块名)的 1. 全局名称空间: 我们在py文件中自己写的变量, 函数..... 2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....) 3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间. 放的是: …...

51zwd一起做网站广州/刷粉网站推广马上刷

一、php在apache中运行模式 php在apache中一共有三种工作方式&#xff1a;CGI模式、FastCGI模式、Apache 模块DLL)以下分别比较&#xff1a;1. CGI模式与模块模式比较&#xff1a;php在apache中两种工作方式的区别(CGI模式、Apache 模块DLL)这两种工作方式的安装&#xff1a;PH…...

合肥网站建设求职简历/谷歌搜索引擎免费

duilib-自定义圆形按钮-环形进度条控件 如何自定义一个圆形按钮控件内嵌到环形进度条底部&#xff0c;点击按钮刷新进度条值&#xff0c;类似下图&#xff1a; 1、在UIDefine.h中增加宏定义 #define DUI_CTR_BTN_PROGRESS (_T("btnProgress"))2、编码控件头文…...

网站怎做百度代码统计/百度推广价格价目表

今天新增环境变量的时候不小心把冒号错打成了分号 export PATH/usr/local/php5/bin;$PATH; 导致PATH变量为/usr/local/php/bin 解决办法&#xff1a;[ubuntu系统] export PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$PATH…...

微信做自己网站/智能优化大师下载

孔子曾经说过“己所不欲勿施于人”&#xff0c;在如今这句话可以改成“己所不有切勿酸人”。在电脑硬件领域更是如此&#xff0c;RTX2080有什么用&#xff1f;玩扫雷还不是一样会卡&#xff01;电竞显示器有什么用&#xff1f;144Hz和60Hz根本没有什么区别&#xff01;那今天我…...