利用栈的基本操作实现将任意一个十进制整数转化为R进制整数

上传人:新** 文档编号:563703929 上传时间:2023-09-10 格式:DOC 页数:3 大小:17.50KB
返回 下载 相关 举报
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数_第1页
第1页 / 共3页
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数_第2页
第2页 / 共3页
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用栈的基本操作实现将任意一个十进制整数转化为R进制整数》由会员分享,可在线阅读,更多相关《利用栈的基本操作实现将任意一个十进制整数转化为R进制整数(3页珍藏版)》请在金锄头文库上搜索。

1、利用栈的基本操作实现将任意一个十进制整数转化为R进制整数利用栈的基本操作实现将任意一个十进制整数转化为R进制整数。算法为:1、定义栈的顺序存取结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:(1)十进制整数X和R作为形参(2)初始化栈(3)只要X不为0重复做下列动作将X % R入栈, X=X/R(4)只要栈不为空重复做下列动作栈顶出栈 , 输出栈顶元素#include #include #include #define stack_init_size 100#define stackincrement 10 typedef struct sqs

2、tack 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+

3、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) i

4、nt 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;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 家居行业

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号