进制转换程序,利用栈算法对输入数进行指定进制的转换。
上传时间: 2014-01-09
上传用户:xzt
#include <stdlib.h> #include<stdio.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("要转化为多少进制:\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; }
上传时间: 2016-12-08
上传用户:爱你198
PCB制程综览
上传时间: 2013-06-20
上传用户:eeworm
电子技术 基础,模电,数电,通讯 PPT完整版
上传时间: 2013-04-15
上传用户:eeworm
美制螺纹尺寸表
上传时间: 2013-06-28
上传用户:eeworm
公英制连接螺纹标准手册
上传时间: 2013-05-22
上传用户:eeworm
用圈数计算线径的软件
上传时间: 2013-04-15
上传用户:eeworm
模-数与数-模转换技术基础
上传时间: 2013-07-12
上传用户:eeworm
模数化终端电器选用指南
上传时间: 2013-06-10
上传用户:eeworm
数模混合仿真及其应用
上传时间: 2013-04-15
上传用户:eeworm