数据结构——如何利用栈将一个十进制正整数N转换成r进制数据并将转换结果输出

在数据结构中,栈是一个重点,如何利用栈将一个十进制正整数N转换成r进制数据并将其转换结果输出,以下是输出代码及结果(运用的是dev c++软件):
输出结果如下:在这里插入图片描述

以下则是代码部分:

在这里插入代码片
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define L 20 //定义 L 为栈的最大容量
void conversion(int N,int r) //将十进制数 N 转换为 r 进制的数
{
int s[L],top; //定义一个顺序栈,top 为栈顶指标
int x;
top =-1; //初始化栈
while ( N ) //此循环为入栈操作
{
s[++top]=N%r; //余数入
N=N / r ; //商作为被除数继续
}
while (top!=-1) //此循环为出栈操作
{
x=s[top--];
if(x<=9)
printf(" %d",x);
else
switch(x)//16 进制时的情况
{ 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(" error");break;
}
}
}
int main()
{
	int N,r=1;
    printf("十进制数N向r进制转换\n");
    printf("请输入待转换的十进制数:N=");
    scanf("%d",&N);
    while(r!=0)
    {
    	printf("\n请输入要转换的进制数r<2,8,16>;若想结束请输入0:");
    	scanf("%d",&r);
		printf("转换结果如下:\n");
		if(r==0) break;
		else
		{
		conversion(N,r);
		printf("\n---------------------------");
     	}
	}
}
		
  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值