写一个数制转换的完整程序,对于键盘输入的任意一个非负十进制数,转换成等值的二进制数,八进制数,或十六进制数

2023-05-16

源代码,可运行

#include<stdlib.h>
#include<stdio.h>
#include<stddef.h>
#define MAXSIZE 100

typedef char ElemType;
/*定义栈结构*/
typedef struct
{
	ElemType data[MAXSIZE];
	int top;
}SeqStack, * PSeqStack;

/*初始化栈,构造一个空栈,如果成功,则返回栈的地址*/
PSeqStack Init_SeqStack()
{
	PSeqStack s;
	s = (PSeqStack)malloc(sizeof(SeqStack));
	if (s)
		s->top = -1;
	return s;
}

/* 判断栈是否为空,如果为空,则返回1,否则返回0*/
int Empty_SeqStack(PSeqStack s)
{
	if (s->top == -1)
		return 1;
	else
		return 0;
}

/*入栈操作,栈不满时,入栈一个元素,成功返回1,失败返回0*/
int Push_SeqStack(PSeqStack s, ElemType x)
{
	if (s->top == MAXSIZE - 1)
		return 0;
	else
	{
		s->top = s->top + 1;
		s->data[s->top] = x;
		return 1;
	}
}

/*出栈操作,栈不空时,出栈一个元素,用参数*x保存,成功返回1,失败返回0*/
int Pop_SeqStack(PSeqStack s, ElemType * x)
{
	if (Empty_SeqStack(s))
		return 0;
	else
	{
		*x = s->data[s->top];
		s->top = s->top - 1;
		return 1;
	}
}

/*取栈顶元素操作,栈不空时,获取栈顶元素,成功返回1,失败返回0*/
int GetTop_SeqStack(PSeqStack s, ElemType * x)
{
	if (Empty_SeqStack(s))
		return 0;
	else
		*x = s->data[s->top];
	return 1;
}
/*销毁栈*/
void Destroy_SeqStack(PSeqStack * s)
{
	if (*s)
		free(*s);
	*s = NULL;
	return;
}

/*十进制转换成r进制(2,8,16)*/
void Conversion(int num, int r)
{
	PSeqStack s;
	ElemType x;
	if (!r)
	{
		printf("基数不能为0");
		return;
	}
	s = Init_SeqStack();
	if (!s)
	{
		printf("初始化栈空间失败");
		return;
	}
	while (num)
	{
		if (num % r > 9)
			Push_SeqStack(s, num % r + 'A' - 10);
			/*余数大于9,则进栈ABCDEF*/
		else
			Push_SeqStack(s, num % r + '0');
			/*余数小于10,则进栈数字字符*/
		num = num / r;
	}
	while (!Empty_SeqStack(s))
	{
		Pop_SeqStack(s, &x);
		printf("%c", x);
	}
}
int main()
{
	int r, num;
	char again = 'y';
	while (again == 'y' || again == 'Y')
	{
		printf("请输入要转换的数据:");
		scanf("%d", &num);
		printf("请输入要转换成几进制:");
		scanf("%d", &r);
		Conversion(num, r);
		printf("继续【y/n】?:");
		scanf("%s", &again);
	}
	return 0;
}

运行结果
运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

写一个数制转换的完整程序,对于键盘输入的任意一个非负十进制数,转换成等值的二进制数,八进制数,或十六进制数 的相关文章

  • 手把手编译基于恩智浦MCAL的工程

    摘要 本篇笔记主要记录基于MPC5744P的MACL和EB的开发编译和配置 准备工作 准备好一个在EB下配置好的工程 xff0c 这里以例程为例子来说明安装配置好编译器GreenHills或者其他编译器 xff0c 这里以GreenHill
  • cmake编译错误,将警告视为错误的解决方法

    原博客地址 xff1a https blog csdn net maxsky article details 50849219 解释一下途中框起来的部分 xff0c 第一个框其实就是失败的关键 xff0c 解决方法很简单 既然他提示了 警告
  • Tomcat 9安装与配置

    一 下载源码 地址 xff1a https tomcat apache org download 90 cgi 二 运行 xff08 1 xff09 解压zip压缩包 xff08 2 xff09 进入解压目录 xff0c 并创建一个目录 x
  • debian apt-get 国内常用 镜像源

    1 使用说明 一般情况下 xff0c 修改 etc apt sources list文件 xff0c 将Debian的默认源地址改成新的地址即可 xff0c 比如将http deb debian org改成https mirrors 163
  • linux 挂载错误 mount: unknown filesystem type LVM2_member 解决方法

    系统启动到request module runaway loop modprobe binfmt 464c挂起 利用U盘系统 xff0c 挂载硬盘出现 xff1a mount unknown filesystem type 39 LVM2
  • linux swap 内存交换分区 详细介绍

    目录 1 什么是SWAP xff0c 到底是干嘛的 xff1f 为什么要进行内存回收 xff1f 会回收的两种内存 2 swappiness到底是用来调节什么的 xff1f 那么这个swappiness到底起到了什么作用呢 xff1f 3
  • [ 云计算 华为云 ] 华为云开天 aPaaS:构建高效的企业数字化平台(上)

    文章目录 前言一 什么是 aPaaS1 1 初识 aPaaS 二 华为云开天 aPaaS2 1 华为云服务类型与种类2 1 1 基础 aPaaS2 1 2 行业 aPaaS xff08 一 xff09 工业 aPaaS xff08 二 xf
  • linux shell mkpasswd 生成随机密码

    centos 安装命令 xff1a yum install y expect 参数 xff1a l 密码的长度定义 默认是 9 d 数字个数 默认是 2 c 小写字符个数 默认是 2 C 大写字符个数 默认是 2 s 特殊字符个数 默认是
  • ERROR: glib-2.22 gthread-2.0 is required to compile QEMU

    问题描述 xff1a centos 6 5 源码编译qemu configure时出现错误 ERROR glib 2 22 gthread 2 0 is required to compile QEMU 解决方法 xff1a yum ins
  • metasploit msfconsole 命令参数

    在MSF里面msfconsole可以说是最流行的一个接口程序 很多人一开始碰到msfconsole的时候就害怕了 那么多复杂的命令语句需要学习 xff0c 但是msfconsole真的是一个强大的接口程序 Msfconsole提供了一个一体
  • 记事本输入“联通”俩字,关闭再打开乱码

    这是个很有意思的事情 这里需要提一下ANSI xff0c 不同的国家和地区制定了不同的标准 xff0c 由此产生了 GB2312 BIG5 JIS 等各自的编码标准 然后 xff0c 这些编码方式没有固定的格式 xff0c 但是比如说UTF
  • RoboRTS建图

    建图仿真 span class token function cd span RoboRTS ws src span class token function source span devel setup bash roslaunch r
  • RISC和CISC的区别

    文章目录 复杂指令集计算机 CISC 精简指令集计算机 RISC CISC与RISC的区别参考文章 RISC 精简指令集计算机 和CISC 复杂指令集计算机 是当前CPU的两种架构 它们的区别在于不同的CPU设计理念和方法 复杂指令集计算机
  • 单链表逆序(C语言)

    最近在复习数据结构 xff0c 刷题正好遇上 xff0c 所以整理一下 span class token macro property span class token directive keyword include span span
  • 各种颜色RGB值

    各种颜色RGB值 RGB 255 192 203 pink xff08 粉红 xff09 RGB 220 20 60 crimson xff08 腥红 xff09 RGB 255 240 245 lavenderblush xff08 苍白
  • 第一范式、第二范式、第三范式、BCNF范式详解

    文章目录 0 范式 NF 1 第一范式 xff08 1NF xff09 2 第二范式 xff08 2NF xff09 2 1 函数依赖2 1 1完全函数依赖2 1 2 部分函数依赖2 1 3 传递函数依赖 2 2 码2 3 非主属性 3 第
  • 数据库实体关系图(ERD)及其画法

    文章目录 1 什么是ER图 2 什么时候画ER图 2 1 数据库设计2 2 数据库调试2 3 数据库创建和补丁2 4 帮助收集需求 3 ERD符号指南4 概念 逻辑和物理数据模型5 如何绘制ER图 数据库绝对是软件系统不可分割的一部分 在数
  • Threads(异步和多线程)

    Task是 NET Framework3 0出现的 xff0c 线程是基于线程池的 xff0c 然后提供丰富的api xff0c Thread方法很多很强大 xff0c 但是太过强大 xff0c 没有限制 DoSomethingLong方法
  • Linux系统中添加库文件路径的方法

    文章目录 方法一方法二 库文件在链接 xff08 静态库和共享库 xff09 和运行 xff08 仅限于使用共享库的程序 xff09 时被使用 xff0c 其搜索路径是在系统中进行设置的 一般 Linux 系统把 lib和 usr lib
  • Linux 环境下 Qt 可执行程序依赖库打包脚本

    文章目录 一 利用 96 ldd 96 命令查看程序需要的依赖库二 编写依赖库打包脚本三 编写执行文件脚本四 总结 Linux 环境下 Qt 可执行程序依赖库打包脚本 使用 Qt Creator 完成程序编码之后 xff0c 虽然会在 De

随机推荐