第六周-数制转换
2015-10-25 19:27
302 查看
问题描述:十进制数制转换
源文件:
#include <stdio.h> #include <malloc.h> #include "sqstack.h" void InitStack(SqStack *&s) { s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1; } void DestroyStack(SqStack *&s) { free(s); } int StackLength(SqStack *s) //返回栈中元素个数——栈长度 { return(s->top+1); } bool StackEmpty(SqStack *s) { return(s->top==-1); } bool Push(SqStack *&s,ElemType e) { if (s->top==MaxSize-1) //栈满的情况,即栈上溢出 return false; s->top++; s->data[s->top]=e; return true; } bool Pop(SqStack *&s,ElemType &e) { if (s->top==-1) //栈为空的情况,即栈下溢出 return false; e=s->data[s->top]; s->top--; return true; } bool GetTop(SqStack *s,ElemType &e) { if (s->top==-1) //栈为空的情况,即栈下溢出 return false; e=s->data[s->top]; return true; } void DispStack(SqStack *s) //输出栈 { int i; for (i=s->top;i>=0;i--) printf("%c ",s->data[i]); printf("\n"); }
主函数:
#include <stdio.h> #include "sqstack.h" void MultiBaseOutput (int number,int base) { //假设number是非负的十进制整数,输出等值的base进制数 int i; SqStack *S; InitStack(S); while(number) //从右向左产生base进制的各位数字,并将其进栈 { Push(S,number%base); //将将余数进栈 number/=base; } while(!StackEmpty(S)) //栈非空时退栈输出 { Pop(S, i); printf("%d",i); } } int main() { MultiBaseOutput(10, 2); return 0; }
运行结果:
<img src="https://img-blog.csdn.net/20151025193014549?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关文章推荐
- libevent源码分析
- (2) 事务
- lambda表达式
- Ubuntu下Git安装-Git学习笔记
- Swift2.0中解决访问资源库函数 - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error conte错误。
- android 55
- 【】Popmotion – 小巧,灵活的 JavaScript 运动引擎
- 安卓Handler消息机制的例子
- RecyclerView的基本使用,还有SwipeRefreshLayout(原生的下拉刷新)(1)
- 前端知识点笔记
- hdu 2049 别easy列(4)——测试新郎
- android studio 导入eclipse工程的问题
- Android开发Hack1-圆角镂空按钮的样式定义
- ubuntu安装android-studio
- 第四次
- IO开篇
- 字典树(转)
- VS2010出现error LNK1123:转换到COFF期间失败
- [59]Spiral Matrix II
- mingw下使用vs2010编译FFMPEG