课程设计:数制转换(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:25:46
设计内容:
任意给定一个M进制的数X。实现以下功能:
(1)求出此数的10进制值(用MD表示)。
(2)实现对X向任意的一个非M进制的数的转换。(主要是在二,八,十,十六进制之间转换)
(3)至少用两种或两种以上的方法实现上述要求(可以用栈解决,用数组解决,其它方法解决)。

要求:必须运用C语言实现,不可用面向对象语言实现。
利用Turbo C软件进行程序设计并调试通过

这是我课程设计的一些细节要求,希望大侠们帮忙,程序最好有点注释,答案好的话追加50分!!!

#include <stdio.h>
#include <stdlib.h>

//输入十进制数N和转化的进制数M
void trans(int n,int m)
{
if(n)
{
trans(n/m,m);
if(n%m<10) printf("%c",n%m+'0');
else printf("%c",n%m-10+'A');
}
}

void main()
{
int m,n,x;
char ch;

printf("给定进制数M:");
scanf("%d",&m);

loop:
printf("给定一个%d进制的数X:",m);
fflush(stdin);
//一个M进制的数X转10进制
for(x=0;;)
{
ch=getchar();
if(ch>='0' && ch<='9')
{
n=ch-'0';
}
else if(ch>='a' && ch<='z')
{
n=ch-'a'+10;
}
else if(ch>='A' && ch<='Z')
{
n=ch-'A'+10;
}
else
{
break;
}
if(n>=m)
{
goto loop;
}
x=x*m+n;
}
printf("转化