下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#include<stdio.h>#include<stdlib.h> typedef int SElemType ;unsigned n;//非负整数int N;#define OK 1#define ERROR 0#define OVERFLOW 0#define STACKINCREMENT 1#define STACK_INIT_SIZE 10typedef 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<S.top) { *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);//d出栈顶元素且赋值给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"); } }}
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的数制转换全部内容,希望文章能够帮你解决数制转换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)