c语言数制转换程序,数制转换(C语言实现)
#include
#include
typedef int SElemType ;
unsigned n;//非负整数
int N;
#define OK 1
#define ERROR 0
#define OVERFLOW 0
#define STACKINCREMENT 1
#define STACK_INIT_SIZE 10
typedef int Status;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
//此处需引入顺序栈存储结构及其基本操作
Status InitStack(SqStack &S)
{
//为栈分配一个指定大小的存储空间
S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S.base)
return ERROR;//存储分配失败
S.top=S.base;//栈底与栈顶相同表示一个空栈
S.stacksize=STACK_INIT_SIZE;
return OK;
}
Status StackEmpty(SqStack S)
{
//若栈S为空栈(栈顶与栈底相同),则返回OK,否则返回ERROR
if(S.top==S.base)
return OK;
else
return ERROR;
}
Status 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)
return ERROR;
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;//这个等式的++*优先级相同,但是它们的运算方式,是自右向左
return OK;
}
Status GetTop(SqStack S,SElemType *e)
{
if(S.base
{
*e=*(S.top-1);
return OK;
}
else return ERROR;
}
Status Pop(SqStack &S,SElemType &b)
{
//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR
if(S.top==S.base)
return ERROR;
b = * --S.top;//这个等式的--*优先级相同,但是它们的运算方式,是自右向左
return OK;
}
Status StackTraverse(SqStack S,int(*visit)(SElemType))
{
while(S.top>S.base)
{
visit(*S.base);
S.base++;
}
printf("\n");
return OK;
}
Status visit(SElemType c)
{
printf("%d", c);
return OK;
}
void conversion()
{
//对于输入任意一个非负十进制整数,打印输出与其等值的N进制数
SqStack s;
SElemType e;
InitStack(s);//初始化栈
while(n)//当n不等于0
{
Push(s,n%N);//压入n除以N的余数(N进制的低位)
n=n/N;
}
printf("转换后的数值为:");
while(!StackEmpty(s))
{
Pop(s,e);//弹出栈顶元素且赋值给e
printf("%d",e);
}
printf("\n");
}
void main()
{
int y;
char c;
printf(" 1.输入一个十进制数n\n 2.输入转换的进制m\n 3.进制转换 \n 4.继续否?(y/n?)\n");
while(1)
{
printf("请选择1-4\n");
scanf("%d",&y);
if(y==1)
{
printf("输入一个十进制数\n");
scanf("%d", &n);
}else
if(y==2)
{
printf("输入转换的进制\n");
scanf("%d", &N);
}else
if(y==3)
{
printf("进制转换\n");
conversion();
}else
if(y==4)
{
printf("请输入y or Y to continue or n or N to quit\n");
scanf("%c",&c);
if(c == 'n' || c == 'N')
break;
}
else
{
printf("无效字符\n");
}
}
}
c语言数制转换程序,数制转换(C语言实现)相关推荐
- c语言不通类型指针转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...
强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...
- c语言用栈编写数制转换程序,数制转换-栈的应用(C++实现)
本程序实现的是十进制与不同进制之间的的数据转换,利用的数据结构是栈,基本数学方法辗转相除法. conversion.h #include using namespace std; //将十进制的数据n ...
- c语言验证算术类转换,C语言的强制转换你会用吗?
C语从开发到现在一直都出现在人们的视野中,因为C语言不仅是许多编译语言开发的基础,它还是许多初学者第一个接触编程所用的语言.就连java之父也曾经说过C语言有太多令人觉得美妙的地方.可见C语言对于编程 ...
- c 语言八进制与十进制转换,C 语言进制之间的转换
二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位的位权为100=1,第2 ...
- 单片机C语言计算热电偶,热电偶转换C语言程序.pdf
#include #include #define ERROR -100 #define uchar unsigned char float tmp = 0; // S 型温度转电压系数 float ...
- N型热电偶检测温度c语言程序,常用热电偶转换C语言程序源码.doc
PAGE PAGE 1 #include#include #define ERROR -100#define uchar unsigned char float tmp = 0; // S型温度转电压 ...
- 数制转换c语言编程,C语言数据结构中数制转换实例代码
C语言数据结构中数制转换实例代码 数制转换是严蔚敏的数据结构那本书中的例子,但是那本书中的例子大都是用伪代码的形式写的,不是很容易理解和实现,对初学者造成了不小的困扰,在这里我们将其详尽的实现出来,以 ...
- 数据结构c语言进制转换八进制,C语言数据结构中数制转换实例代码
C语言数据结构中数制转换实例代码 数制转换是严蔚敏的数据结构那本书中的例子,但是那本书中的例子大都是用伪代码的形式写的,不是很容易理解和实现,对初学者造成了不小的困扰,在这里我们将其详尽的实现出来,以 ...
- C语言笔记:数制与进制(数制)之间转换问题
文章目录 简介 进制的基本概念 二进制.八进制.十六进制加减法的区别 二进制 八进制 十六进制 数制之间的转换 情景一.将二进制.八进制.十六进制转换为十进制(总结:按权相加) 整数部分(不带小数) ...
最新文章
- MyBatis+Spring整合
- NSString/NSMutable字符串——韩俊强…
- 实现canvas连线
- python新手如何度过小白期,不再当菜鸟程序员?
- python返回长度值_Python 文件 truncate() 方法(截断返回截取长度)
- xp系统debugger用户_xp系统BIOS恢复出厂设置开机需按F1的具体步骤--win10专业版
- 【BZOJ4300】绝世好题,位运算相关DP
- ubuntu 学习笔记2--安装tomcat
- Visio 不能使用方向键移动图形的解决办法
- SLAM会议笔记(三)V-LOAM
- 动态的显示当前的时间---setInterval的用法
- UIAlertView 弹框
- 鼠标被计算机无法识别怎么办,win7系统usb鼠标无法识别怎么解决 电脑usb鼠标无法识别解决方法...
- 广数系统u盘支持什么格式_数控车床编程导入u盘 数控车床u盘读不出来
- SRGAN——使用与超分辨率重建的GAN
- win10计算机内存,win10系统电脑怎么升级内存?win10系统升级内存的方法
- STM32八路ADC采用DMA方式
- 复旦非全日制研究生计算机,信息整合!复旦大学非全日制研究生招生详情
- Android手机teams,在iOS和Android上自定义Microsoft Teams体验的三种最佳方法
- Fabric中的私有数据
热门文章
- Gson解析空字符串异常的处理
- python 的 int() 函数
- uniapp项目 mac连接安卓手机无法启动
- php手册3.1,thinkphp3.1手册下载|
- 服务器硬盘用在硬盘录像机,网络硬盘录像机是干什么用的
- uni-app 实现语音播放实现思路和代码
- 数据库设计 - 01外卖配送系统
- 深度linux打不开了,深度社区严重打不开
- h5倒计时弹窗_H5活动开始/结束倒计时实现
- 测试手机是否降频软件,如何检测自己的iPhone是否被苹果降频 降频的处理方法有哪些...