利用栈的基本操作实现将任意一个十进制整数转化为R进制整数
更新时间:2023-09-05 10:39:01 阅读量: 教育文库 文档下载
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数。 算法为:
1、定义栈的顺序存取结构
2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)
3、定义一个函数用来实现上面问题:
(1)十进制整数X和R作为形参
(2)初始化栈
(3)只要X不为0重复做下列动作
将X % R入栈, X=X/R
(4)只要栈不为空重复做下列动作
栈顶出栈 , 输出栈顶元素
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define stack_init_size 100
#define stackincrement 10
typedef struct sqstack
{
int *base;
int *top;
int stacksize;
} sqstack;
int StackInit(sqstack *s)
{
s->base=(int *)malloc(stack_init_size *sizeof(int));
if(!s->base)
return 0;
s->top=s->base;
s->stacksize=stack_init_size;
return 1;
}
int Push(sqstack *s,int e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base)
return 0;
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}
*(s->top++)=e;
return e;
}
int Pop(sqstack *s,int e)
{
if(s->top==s->base)
return 0;
e=*--s->top;
return e;
}
int stackempty(sqstack *s)
{
if(s->top==s->base)
{
return 1;
}
else
{
return 0;
}
}
int conversion(sqstack *s)
{
int n,e=0,flag=0;
printf("输入要转化的十进制数:\n");
scanf("%d",&n);
printf("要转化为多少进制:2 进制、8 进制、16 进制 填数字!\n"); scanf("%d",&flag);
printf("将十进制数%d 转化为%d 进制是:\n",n,flag);
while(n)
{
Push(s,n%flag);
n=n/flag;
}
while(!stackempty(s))
{
e=Pop(s,e);
switch(e)
{
case 10: printf("A");
break;
case 11: printf("B");
break;
case 12: printf("C"); break;
case 13: printf("D"); break;
case 14: printf("E"); break;
case 15: printf("F"); break;
default: printf("%d",e); }
}
printf("\n");
return 0;
}
int main()
{
sqstack s;
StackInit(&s);
conversion(&s);
return 0;
}
正在阅读:
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数09-05
县税务局2021年上半年多篇工作总结精选及下半年工作计划08-03
2018-学习体会交流:我的党性剖析材料-推荐word版 (2页)03-08
信访条例学习心得体会心得体会04-03
心得体会如何构建和谐校园心得体会01-07
道德模范事迹学习心得体会_心得体会09-07
春训心得体会3篇_心得体会范文07-30
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 整数
- 现将
- 十进制
- 进制
- 基本操作
- 化为
- 任意
- 利用
- 一个
- MBI5026字型码表
- 淮阴工学院管理学期末试卷8
- 6-邓海根-空气阻断设计方案-简
- 公司内部职称英文缩写
- 2019沥青路面渗水系数测试方法继续教育答案
- 机械设备租赁合同范本完整版
- 最新版中央广播电视大学《现代金融业务》期末复习
- 国家自然科学基金委员会管理科学部认定的管理类30种重要期刊
- 影院售票管理系统可行性分析报告
- 实习护生出科试卷
- 已知X是3位二进制数(其值小于等于5),试实现Y=3X 并用7段数码管进行显示
- 学习贯彻三严三实心得体会
- Unit 8 Economic Growth is a Patch to Perdition by HU Dan(1)
- 2016_2017学年高中化学专题3有机化合物的获得与应用第2单元食品中的有机化合物第1课时乙醇学业分层测评苏教
- 安全生产管理制度清单
- 高一英语必修二unit5 Warming up
- 海南省医疗服务收费
- 区域规划图-案例
- 超市商品条码数据EXCEL文件
- 在Word2010公式中添加运算符