(c语言程序设计)10进制数转化为其它进制数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S.base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType));
if(!S.base)
exit(0); //存储空间失败
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return 0;
}
Status GetTop(SqStack S,SElemType &e) //若栈不为空,则用e返回S的栈顶元素,并返回0,否则返回1
{
int r,e;
while(a)
{
r=a%b;
if(r>9)
r=r+55;
Push(S,r); //入栈
a/=b; //转换成(2,8,16)进制
}
printf("转换成%d进制的结果为:",b);
while(!StackEmpty(S))
{
Pop(S,e);
if(e>=65)
printf("%c",e);
{
if(S.top==S.base) return 1;
e=*(S.top-1);
return 0;
}
Status Push(SqStack &S ,SElemType e) //插入元素e为新的栈顶元素
{
if(S.top-S.base>=S.stacksize) //如果栈满,则追加存储空间
{
S.base=(SElemType *)realloc
typedef int SElemType;
typedef int Status;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize; //栈容量
}SqStack;
SqStack S;
Status InitStack(SqStack &S){ //构造一个空栈
}while(a);
printf("\n");
DestroyStack(S); //销毁栈S,栈S不再存在
}
(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base) return 1 ; //存储分配失败
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
else
printf("%d",e);
}
return 0;
}
void 百度文库ain()
{
int x,t,a;
InitStack(S); //构造一个空栈
do
{
printf("_________________********________\n");
printf("请输入一个10进制的数:");
scanf("%d",&x);
{
if(S.top==S.base)
return 1;
return 0 ;
}
Status DestroyStack(SqStack &S)
{
free(S.base);
S.top=NULL;
S.base=S.top;
return 0 ;
}
Changer(int a,int b) //十进制转换成其他进制的函数Changer()
return 0;
}
Status Pop(SqStack &S,SElemType &e)
{ //若栈不空,则删除S的栈顶元素,用e返回其值,并返回0,否则返回1
if(S.top==S.base) return 1;
e=*--S.top;
return 0;
}
Status StackEmpty(SqStack S) //若栈空,则返回1,否则返回0
//用顺序栈来实现进制转换
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<math.h>
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
printf("请输入要换成几进制数:");
scanf("%d",&t);
Changer(x,t);
printf("\n_________________********________\n");
printf("\n");
printf("\n是否还想继续进行操作(1)是;(0)否:");
scanf("%d",&a);
if(!S.base)
exit(0); //存储空间失败
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return 0;
}
Status GetTop(SqStack S,SElemType &e) //若栈不为空,则用e返回S的栈顶元素,并返回0,否则返回1
{
int r,e;
while(a)
{
r=a%b;
if(r>9)
r=r+55;
Push(S,r); //入栈
a/=b; //转换成(2,8,16)进制
}
printf("转换成%d进制的结果为:",b);
while(!StackEmpty(S))
{
Pop(S,e);
if(e>=65)
printf("%c",e);
{
if(S.top==S.base) return 1;
e=*(S.top-1);
return 0;
}
Status Push(SqStack &S ,SElemType e) //插入元素e为新的栈顶元素
{
if(S.top-S.base>=S.stacksize) //如果栈满,则追加存储空间
{
S.base=(SElemType *)realloc
typedef int SElemType;
typedef int Status;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize; //栈容量
}SqStack;
SqStack S;
Status InitStack(SqStack &S){ //构造一个空栈
}while(a);
printf("\n");
DestroyStack(S); //销毁栈S,栈S不再存在
}
(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base) return 1 ; //存储分配失败
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
else
printf("%d",e);
}
return 0;
}
void 百度文库ain()
{
int x,t,a;
InitStack(S); //构造一个空栈
do
{
printf("_________________********________\n");
printf("请输入一个10进制的数:");
scanf("%d",&x);
{
if(S.top==S.base)
return 1;
return 0 ;
}
Status DestroyStack(SqStack &S)
{
free(S.base);
S.top=NULL;
S.base=S.top;
return 0 ;
}
Changer(int a,int b) //十进制转换成其他进制的函数Changer()
return 0;
}
Status Pop(SqStack &S,SElemType &e)
{ //若栈不空,则删除S的栈顶元素,用e返回其值,并返回0,否则返回1
if(S.top==S.base) return 1;
e=*--S.top;
return 0;
}
Status StackEmpty(SqStack S) //若栈空,则返回1,否则返回0
//用顺序栈来实现进制转换
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<math.h>
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
printf("请输入要换成几进制数:");
scanf("%d",&t);
Changer(x,t);
printf("\n_________________********________\n");
printf("\n");
printf("\n是否还想继续进行操作(1)是;(0)否:");
scanf("%d",&a);