将十进制数字转化为其他进制(基于C语言的数据结构)栈的应用

本文介绍了一个使用栈结构实现的十进制数转换为任意进制数的算法。通过C语言实现,详细展示了如何利用栈进行数据的逆序存储和读取,以完成进制转换的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

将十进制数字转化为其他进制

#include <stdio.h>
#define Stack_Size 20
#define TRUE 1
#define FALSE 0
//结构体
typedef struct{
	int elem[Stack_Size];
	int top;
}SeqStack;
//初始化栈
void InitStack(SeqStack *S){
	S->top=-1;
} 
//进栈
int Push(SeqStack *S,int x){
	if(S->top==Stack_Size-1)
		return(FALSE);
else{
		S->top=S->top+1;
		S->elem[S->top]=x;
			return(TRUE);
	}
} 
//出栈
int Pop(SeqStack *S,int *x) {
	if(S->top==-1)
		return(FALSE);
	else{
		*x=S->elem[S->top];
		S->top--;
			return(TRUE);	
	}
}
//输出栈
void print(SeqStack *S){
	int x;
	for(x=0;x<=S->top;x++)
		printf("%d",S->elem[x]);
	printf("\n");
} 
//进制转换
void conversationcint(SeqStack *S,int N){
	int x,z,y=0,*p;
	printf("请输入你想要转化成进制的数字:");
	scanf("%d",&N);
	printf("请输入你想要转换成的进制:");
	scanf("%d",&z);
	InitStack(S);
	while(N>0){
		y=N%z;
		Push(S,y);
		N=N/z;
	}
	while(S->top!=-1){
		Pop(S,&y);
		printf("%d",y);
	}
	printf("\n");
}//主函数
void main(){
	int x;
	SeqStack S;
	conversationcint(&S,x);
}

运行结果截图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值