#include <stdio.h>
#include <string.h>
void change(char *s,int n,int b);
int main()
{
int num,base;
char s[100];
printf("请输入一个数:\n");
scanf("%d",&num);
printf("请输入要转换的进制\n");
scanf("%d",&base);
change(s,num,base);
printf("%d转换成%d进制为:%s\n",num,base,s);
return 0;
}
void change(char *s,int n,int b)
{
char bit[]={"0123456789ABCDEF"};
int len;
if(n==0)
{
strcpy(s,"");
return;
}
change(s,n/b,b); 这个函数一直调用自己,最后n=0了,s中保存的内容不就是空的直接返回了吗?下面的语句不就没用了。
len=strlen(s);
s[len]=bit[n%b];
s[len+1]='\0';
}
onemoo
onemoo
相关分类