早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据结构课程设计关于数制转换问题任意给定一个M进制的数x,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方

题目详情
数据结构课程设计 关于数制转换问题
任意给定一个M进制的数x ,请实现如下要求
1)求出此数x的10进制值(用MD表示)
2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
▼优质解答
答案和解析
//给你一个十进制转换为八进制的,其他类似的改一下就是了
#include"stdio.h"
#include"malloc.h"
#include"util.h"
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW -2
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
typedef int SElemType;
typedef int Status;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status InitStack(SqStack & S)//栈的初始化
{
S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);
S.top = S.base;
S.stacksize = 100;
return OK;
}
/*Status GetTop(SqStack S,SElemType &e)
{
if(S.top==S.base)
return ERROR;
e = *(S.top-1);
printf("获得栈顶元素:");
printf("%3d\n",e);
return OK;
}*/
Status Push(SqStack &S,SElemType e)
{
if(S.top-S.base>=S.stacksize)
{
S.base = (SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);
S.top = S.base + S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}
Status Pop(SqStack &S,SElemType &e)
{
//若栈不为空,则删除s的栈顶元素,用e返回其值
if(S.top==S.base)
return ERROR;
--S.top;
e = *S.top;
return OK;
}
bool StackEmpty(SqStack &S)
{
if(S.top=S.base)
return TRUE;
else
return FALSE;
}
void main()
{
SqStack S;
int N,t;
printf("请输入要转换的十进制数:");
scanf("%d",&N);
InitStack(S);
while(N)
{
Push(S,N%8);
N=N/8;
}
printf("转换后的八进制数:");
while(!StackEmpty(S))
{
Pop(S,t);
printf("%2d",t);
}
printf("\n");
}
看了 数据结构课程设计关于数制转换...的网友还看了以下:

转一转,说一说这些三角形是以哪个点为中心旋转的.(1)以点A为中心旋转的图形是.(2)以点B为中心  2020-04-11 …

转一转,说一说这些三角形是以哪个点为中心旋转的.(1)以点A为中心旋转的图形是.(2)以点B为中心  2020-04-11 …

转一转,说一说这些三角形是以哪个点为中心旋转的.(1)以点A为中心旋转的图形是.(2)以点B为中心  2020-04-11 …

一道科学题求解啊快今晚就要马上就要感激不尽啊1.使用高倍物镜观察的正确操作顺序是()1.转动转换器  2020-05-23 …

关于地球自转公转的地理问题分别分析如果地球不自转只公转,只自转不公转,和不自传不公转这三种情况下,  2020-06-06 …

电风扇在闪光灯下转动,灯每秒闪光30次,风扇有三个均匀分布的叶片,如果转动时观察不到叶片转动,则其  2020-06-16 …

五(1)班和五(2)班原来共有93人,这学期(1)转出1人,(2)班转入3人.现在(1)和(2)五  2020-06-25 …

(2014•盐城)如图所示,可以自由转动的转盘被3等分,指针落在每个扇形内的机会均等.(1)现随机  2020-07-20 …

c#中向下转换基础问题向下转型:父类对象转换为子类对象,这里要注意进行强制转换person类是st  2020-07-26 …

填空题1转换转换器,使对准把一个较大的对准.一只眼注视内另一只眼转动反光镜,使光线通过通光口反射到  2020-08-01 …