C语言中的栈实现进制转换
答案:2 悬赏:10 手机版
解决时间 2021-04-02 07:42
- 提问者网友:世勋超人
- 2021-04-01 23:07
C语言中的栈实现进制转换
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-04-02 00:05
#include
#include
#include
#define MAXSIZE 100
typedef int DataType;
typedef struct{
DataType data[MAXSIZE];
int top;
}SeqStack,*PSeqStack;
PSeqStack Init_SeqStack(void)
{
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));
if(S)
S->top=-1;
return S;
}
int Push_SeqStack(PSeqStack S,DataType x)
{
if (S->top==MAXSIZE-1)
return 0;
else
{
S->top++;
S->data[S->top]=x;
return 1;
}
}
int Empty_SeqStack(PSeqStack S)
{
if(S->top==-1)
return 1;
else
return 0;
}
int Pop_SeqStack(PSeqStack S,DataType *x)
{
if(Empty_SeqStack(S))
return 0;
else
{
*x=S->data[S->top];
S->top--;
return -1;
}
}
void Destory_SeqStack(PSeqStack *S)
{
if(*S)
free(*S);
*S=NULL;
return;
}
typedef int DataType;
int conversation(int n,int r)
{
PSeqStack S;
DataType x;
if(!r)
{
printf("基数不能为0");
return(0);
}
S=Init_SeqStack();
if(!S)
{
printf("栈初始化失败");
return(0);
}
while(n)
{
Push_SeqStack(S,n%r);
n=n/r;
}
while (!Empty_SeqStack(S))
{
Pop_SeqStack(S,&x);
printf("%d",x);
}
Destory_SeqStack(&S);
return 0;
}
void main()
{
int i,a;
printf("输入要转换的进制!!\n");
scanf("%d",&a);
printf("输入要转换的数!!\n");
scanf("%d",&i);
conversation(i,a);
}
#include
#include
#define MAXSIZE 100
typedef int DataType;
typedef struct{
DataType data[MAXSIZE];
int top;
}SeqStack,*PSeqStack;
PSeqStack Init_SeqStack(void)
{
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));
if(S)
S->top=-1;
return S;
}
int Push_SeqStack(PSeqStack S,DataType x)
{
if (S->top==MAXSIZE-1)
return 0;
else
{
S->top++;
S->data[S->top]=x;
return 1;
}
}
int Empty_SeqStack(PSeqStack S)
{
if(S->top==-1)
return 1;
else
return 0;
}
int Pop_SeqStack(PSeqStack S,DataType *x)
{
if(Empty_SeqStack(S))
return 0;
else
{
*x=S->data[S->top];
S->top--;
return -1;
}
}
void Destory_SeqStack(PSeqStack *S)
{
if(*S)
free(*S);
*S=NULL;
return;
}
typedef int DataType;
int conversation(int n,int r)
{
PSeqStack S;
DataType x;
if(!r)
{
printf("基数不能为0");
return(0);
}
S=Init_SeqStack();
if(!S)
{
printf("栈初始化失败");
return(0);
}
while(n)
{
Push_SeqStack(S,n%r);
n=n/r;
}
while (!Empty_SeqStack(S))
{
Pop_SeqStack(S,&x);
printf("%d",x);
}
Destory_SeqStack(&S);
return 0;
}
void main()
{
int i,a;
printf("输入要转换的进制!!\n");
scanf("%d",&a);
printf("输入要转换的数!!\n");
scanf("%d",&i);
conversation(i,a);
}
全部回答
- 1楼网友:持酒劝斜阳
- 2021-04-02 01:02
#include
#include
#include
#define MAXSIZE 100
#define DataType int //-------------------------
typedef struct {
DataType data[MAXSIZE];
int top;
}SeqStack,*PSeqStack;
PSeqStack Init_SeqStack(void)
{
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));
if(S)
S->top=-1;
return S;
}
int Push_SeqStack (PSeqStack S,DataType x) //----------------------------,
{
if (S->top==MAXSIZE-1)
return 0;
else
{
S->top++;
S->data[S->top]=x;
return 1;
}
}
int Empty_SeqStack(PSeqStack S); ////-----------------------------------------
int Pop_SeqStack(PSeqStack S,DataType *x)
{
if(Empty_SeqStack (S))
return 0;
else
{
*x=S->data[S->top];
S->top--;
return -1;
}
}
void Destory_SeqStack (PSeqStack *S)
{
if(*S)
free(*S);
*S=NULL;
return;
}
int Empty_SeqStack(PSeqStack S)
{
if(S->top==-1)
return 1;
else
return 0;
}
int conversation (int n,int r)
{
PSeqStack S;
DataType x;
if(!r)
{
printf("基数不能为0");
return(0);
}
S=Init_SeqStack();
if(!S)
{
printf("栈初始化失败");
return(0);
}
while(n)
{
Push_SeqStack(S,n%r);
n=n/r;
}
while (!Empty_SeqStack(S))
{
Pop_SeqStack(S,&x);
printf("%d",x);
}
Destory_SeqStack (&S);
}
void main()
{
int i,a;
printf("输入要转换的进制!!\n");
scanf("%d",&a);
printf("输入要转换的数!!\n");
scanf("%d",&i);
conversation(i,a);
}
#include
#include
#define MAXSIZE 100
#define DataType int //-------------------------
typedef struct {
DataType data[MAXSIZE];
int top;
}SeqStack,*PSeqStack;
PSeqStack Init_SeqStack(void)
{
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));
if(S)
S->top=-1;
return S;
}
int Push_SeqStack (PSeqStack S,DataType x) //----------------------------,
{
if (S->top==MAXSIZE-1)
return 0;
else
{
S->top++;
S->data[S->top]=x;
return 1;
}
}
int Empty_SeqStack(PSeqStack S); ////-----------------------------------------
int Pop_SeqStack(PSeqStack S,DataType *x)
{
if(Empty_SeqStack (S))
return 0;
else
{
*x=S->data[S->top];
S->top--;
return -1;
}
}
void Destory_SeqStack (PSeqStack *S)
{
if(*S)
free(*S);
*S=NULL;
return;
}
int Empty_SeqStack(PSeqStack S)
{
if(S->top==-1)
return 1;
else
return 0;
}
int conversation (int n,int r)
{
PSeqStack S;
DataType x;
if(!r)
{
printf("基数不能为0");
return(0);
}
S=Init_SeqStack();
if(!S)
{
printf("栈初始化失败");
return(0);
}
while(n)
{
Push_SeqStack(S,n%r);
n=n/r;
}
while (!Empty_SeqStack(S))
{
Pop_SeqStack(S,&x);
printf("%d",x);
}
Destory_SeqStack (&S);
}
void main()
{
int i,a;
printf("输入要转换的进制!!\n");
scanf("%d",&a);
printf("输入要转换的数!!\n");
scanf("%d",&i);
conversation(i,a);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯