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

数制转换问题C++系统任务任意给定一个M进制的数x,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法

题目详情
数制转换问题 C++
【系统任务】任意给定一个M进制的数x ,请实现如下要求
1)求出此数x的10进制值(用MD表示)
2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,或其它方法)
▼优质解答
答案和解析
#include
#include
#include
#include
#include
using namespace std;
char stack[100];
int top=-1;
void push(char data)
{
stack[++top]=data;
stack[top+1]='\0';
}
char *convert(int a,int b)
{
char *ch=new char[100];
char *ch1=new char[100];
int i=0,j,k=0;
while(a)
{
int t=a%b;
a/=b;
ch[i++]=t+'0';
}
ch[i]='\0';
for(j=i-1;j>=0;j--)
{
ch1[k++]=ch[j];
}
ch1[k]='\0';
return ch1;
}
void change(int a,int b)
{
int j,k;
while(a)
{
int t=a%b;
a/=b;
push(t+'0');
}
for(j=0,k=top;j {
char c=stack[j];
stack[j]=stack[k];
stack[k]=c;
}
}
void main()
{
int a,b;
cout< cin>>a>>b;
change(a,b);
cout< cout<}
看了数制转换问题C++系统任务任意...的网友还看了以下: