首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

利用栈兑现十进制到其它进制转换

2012-12-18 
利用栈实现十进制到其它进制转换#include stdio.h#define DataType char#define StackSize 10//定义栈ty

利用栈实现十进制到其它进制转换

#include <stdio.h>#define DataType char#define StackSize 10//定义栈typedef struct{DataType data[StackSize];int top;}MyStack;//初始化栈void initStack(MyStack *s){s->top=-1;}//判断栈空int stackEmpty(MyStack *s){if(s->top==-1)return 1;return 0;}//判断栈满int stackFull(MyStack s){//if(s->top==StackSize)return 1;//return 0;return s.top>=StackSize-1;}//进栈void pushStack(MyStack *s,DataType key){if(stackFull(*s)){printf("栈满\n");return;}s->data[++s->top]=key;}//出栈void popStack(MyStack *s){while(!stackEmpty(s)){printf("%c ",s->data[s->top]);s->top = s->top-1;}}//数据进制转换 输入的十进制数 和转换的进制数void change(int n,int b){MyStack stack;char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};initStack(&stack);while(n){pushStack(&stack,c[n%b]);n=n/b;}popStack(&stack);}void main(){int n,b;scanf("%d %d",&n,&b);change(n,b);}

热点排行