数据结构栈实现进制转换遇到问题十进制数255 输出的十六进制数是F15F15 哪里错了

问题描述

数据结构栈实现进制转换遇到问题十进制数255 输出的十六进制数是F15F15 哪里错了

//进制转换函数
void conversion(int n,int r)
{
SqStack S;//构建一个栈
InitStack(S);
while(n)
{
Push(S,n%r);//数据入栈
n=n/r;
}
while(!StackEmpty(S))
{
SElemType e;
Pop(S,e);//数据出栈
switch(e)
{
case 0: break;
case 1: break;
case 2: break;
case 3: break;
case 4: break;
case 5: break;
case 6: break;
case 7: break;
case 8: break;
case 9: break;
case 10: cout<<"A";
break;
case 11: cout<<"B";
break;
case 12: cout<<"C";
break;
case 13: cout<<"D";
break;
case 14: cout<<"E";
break;
case 15: cout<<"F";
break;
}
cout<<e;
}
cout<<endl;
}

解决方案

你的程序没错,只是cout<<e;这里多输出了一个原始值。

解决方案二:

竟然这么干?给你个参考
http://m.blog.csdn.net/blog/xiaofei2010/7434737

解决方案三:

想用数据结构的栈来实现进制转换就这样写的进制转换函数。二进制八进制都可以,但是十六进制有时会出错

解决方案四:

那应该怎么该 ,不能把cout<<e: 去掉吧,那要怎么改啊啊?

时间: 2024-08-29 04:47:25

数据结构栈实现进制转换遇到问题十进制数255 输出的十六进制数是F15F15 哪里错了的相关文章

c语言-一直不能输出正确结果 栈关于进制转换的 求助

问题描述 一直不能输出正确结果 栈关于进制转换的 求助 #include #include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define ERROR 0 #define TRUE 1 typedef int ElemType; typedef struct{ ElemType *base; ElemType *top; int Stacksize; }sqStack; ElemType e; sqSt

使用javascript的stack数据结构,实现进制转换

function Stack() { var items = []; this.push = function(element){ items.push(element); } this.pop = function(){ return items.pop(); } this.peek = function() { return items[items.length -1]; } this.isEmpty = function() { return items.length == 0; } th

c语言-C语言求教,进制转换代码

问题描述 C语言求教,进制转换代码 请大家帮我看看我的程序有什么错误,感激不尽! /* num:数字 i:进制数 k:总位数 */ #include"stdio.h" #include"math.h" int firsttext(int num,int i){ int k; for(k=1;;k++){ if(num<((int)pow((float)i,(float)k))) break; } --k; return k; } int printouteve

任意进制转换算法

#include <stdio.h> /************************************************************************/ /* 功能:实现任意进制之间的转换 /* 参数:pSrc--指向源进制数,字符数组存放 /* pDst--指向转换完成后的进制数,以字符数组形式存放 /* src --源进制数的进制类型,如十进制数的src值为10 /* dst --需要转换成的进制类型 /**************************

Python进制转换(二进制/八进制/十进制/十六进制)

Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html    全局定义 base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]   二进制 to 十进制 : int(str,n=10)  def bin2dec(string_num): return str(

数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环

问题描述 数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环 ```#include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typedef s

数据结构实验之栈一:进制转换

数据结构实验之栈一:进制转换 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出. Input 第一行输入需要转换的十进制数: 第二行输入R. Output 输出转换所得的R进制数. Example Input 1279 8 Example Output 2377 Code realization #include <stdio.h> #in

数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!!

问题描述 数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!! #include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typed

结合stack数据结构,实现不同进制转换的算法

#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Data Structures>> # Release 3.0 # chengang882 @ 2016-12-20 # 它可以将十进制转换成二进制,八进制和十六进制 # Completed implementation of a stack ADT #数据结构 class Stack(object)