新手求解,2,8,16进制转换10进制
从键盘上任意输入一个2、8或16进制数(若输入的相应进制数有误,需重新输入),将其转换成十进制数输出

程序代码:我有一个10进制转换成2,8,16进制的
#include "stdio.h"
void any1(int x);
void any2(int x);
void any3(int x);
char change(int x);
void main()
{
long integer = 0;
int n;
int c;
while(9)
{
printf("请输入需要转换为的进制数和需要转换的十进制整数:");
scanf("%d %d",&n,&integer);
if(n == 2)
{
printf("转换成%d进制为:",n);
any1(integer);
}else if(n == 8)
{
printf("转换成%d进制为:",n);
any2(integer);
}else
{
printf("转换成%d进制为:",n);
any3(integer);
}
printf("\n");
printf("是否继续?(Y/N):");
scanf(" %c",&c);
if((c == 'n')||(c == 'N'))
break;
}
}
void any1(int x)
{
if(x / 2 > 0)
{
any1(x / 2);
printf("%d",x % 2);
}
else
printf("%d",x);
}
void any2(int x)
{
if(x / 8 > 0)
{
any2(x / 8);
printf("%d",x % 8);
}
else
printf("%d",x);
}
void any3(int x)
{
if(x / 16 > 0)
{
any3(x / 16);
if((x % 16) > 9)
printf("%c",change(x % 16));
else
printf("%d",x % 16);
}
else
{
if(x > 9)
printf("%c",change(x));
else
printf("%d",x);
}
}
char change(int x)
{
switch(x)
{
case 10: return 'A';
case 11: return 'B';
case 12: return 'C';
case 13: return 'D';
case 14: return 'E';
case 15: return 'F';
default : return 'N';
}
}
看着用吧!
