编写一个主函数和子函数char *tran(int x, int r),
要求是:函数tran将十进制整数x转换成r进制数y(r在2~16之间),
x和r的值由主调函数(即主函数)传入,y的值需要返回主调函数进行输出。要求:y的值利用字符数组进行存储,数组的每一个元素存放y的一位数字字符
#include <stdio.h>
#include <string.h>
int main()
{
char *tran(int x,int r),*p,y[20];
int x,r,i=0;
printf("请输入十进制数和所需转化的进制:");
scanf("%d %d",&x,&r);
p=tran(x,r);
while(*p>='0'&&*p<='9'||*p>='A'&&*p<='F')
{
y[i]=*p;
i++;
p++;
}
printf("%s",y);
return 0;
}
char *tran(int x,int r)
{
int i,j,num;
char ch[20],ch1[20],*p;
p=ch;
for(i=0;x/r!=0;i++,p++)
{
num=x%r;
if(num==10)
*p='A';
else if(num==11)
*p='B';
else if(num==12)
*p='C';
else if(num==13)
*p='D';
else if(num==14)
*p='E';
else if(num==15)
*p='F';
else
*p=num+'0';
x/=r;
}
num=x%r;
*p=num+'0';
for(j=0;j<=i;j++,p--)
{
ch1[j]=*p;
}
p=ch1;
return p;
}