题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输出该数值的十进制字符串。
输入例子:
0xA
0xA
输出例子:
10
方法1:运用进制之间转换的关系,采用了进栈出栈来处理,比较复杂,主要目的是复习一下数据结构的知识。
//十六进制转换为十进制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
typedef char ElemType;
typedef struct//顺序栈的定义
{
ElemType *base;
ElemType *top;
int stackSize;
}sqStack;
void InitStack(sqStack *s)//初始化栈
{
s->base = (ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));
if (!s->base)
{
exit(0);
}
s->top = s->base;
s->stackSize = STACK_INIT_SIZE;
}
void Push(sqStack *s, ElemType e)//压栈
{
if (s->top - s->base >= s->stackSize)
{
s->base = (ElemType *)re