在c语言中用递归将10进制转化成8进制

2025-02-24 08:01:31
推荐回答(1个)
回答1:

#include
#include
main()
{
int
i,m,n,s=0,t=1;char
a[100],b[100];
gets(a);//用回车分割
scanf("%d%d",&n,&m);
//输入的进制和想要转换的进制
for(i=strlen(a)-1;i>=0;i--)//先转10进制
{
if(n!=16)
s+=(a[i]-48)*t;
else
s+=(a[i]-55)*t;
t*=n;
}
for(i=0;s;i++)//10进制转你想要的进制
{
if(s%m>=10)
b[i]=s%m+55;
else
b[i]=s%m+48;
s/=m;
}
b[i]='\0';
for(i=strlen(b)-1;i>=0;i--)
printf("%c",b[i]);
}
这是任意进制的转换