将10进制数转换为任意进制数

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:05:02
用VC++程序编写
要求(介于2和16之间)

同时考虑整数和小数部分,才10分,太少了!

只考虑非负整数,N<=16,用递归:

#include <stdio.h>
char s[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void toN(long n, int N)
{
if (n<N)
{
printf("%c",s[n]);
return;
}
else
{
toN(n/N, N);
printf("%c",s[n%N]);
}
}

void main()
{
long n;
int N;

printf("Please input <n, N>");
scanf("%ld%d", &n, &N);
toN(n, N);
getch();
}