请教各位大佬,本人萌新一枚,有问题请教。如果我输入一个数n(n是十进制数),在输入一个数d(d代表进制),输出d进制到二进制所有数。请问怎么做?
比如我输入121 在输入8 就输出121的 8 7 6 5 4 3 2 进制数。我想用for loop for(d;d>=2;d--)但好像不行,请问怎么做? 谢谢
我的代码如下,(参考了下某位版主大佬的代码)
void decimalToAny(int n,int d)
{
if(n==0)
{
return ;
}
else if(n>0 && d>=2)
{
decimalToAny(n/d,d);
if(d>=10)
{ // if d is >10
if(n%d>=10)
{
printf("%c",(char)((n%d-10)+'A'));
}
else
{ //if remainder is smaller than 10, print out
printf("%d",n%d);
}
}
else
{ //if d is smaller than 10
printf("%d",n%d);
}
}
else if(n<0 && d>=2)
{
printf("Please enter a positive number");
}
else if(n>0 && d<2)
{
printf("Please enter at least binary system");
}
else
{
printf("Please enter positive number and binary system");
}
}
int main()
{
int n,d;
char again='y';
while(again=='y'||again=='Y')
{
printf("enter number");
scanf("%d",&n);
printf("base");
scanf("%d",&d);
if(n==0)
{
printf("transfer finished:0\n");
continue;
}
decimalToAny(n,d);
printf("\n");
printf("--------do you want to continue[y/n]?:");
scanf("%s",&again);
}
return 0;
}