1)定义一个函数trans10to16将10进制数转换成16进制格式,要求:
a) trans10to16函数需采用递归的形式定义。
b) trans10to16函数中至少需两个参数,第一个为整型数n,第二个
为字符数组,用于存放转换后的16进制数的四位符号。
2)在main()函数中实现下列操作
a)定义一个长度为5的整型数组numbers,随机生成5个非负整数
(范围0~65535)存入数组。
b)定义一个5行的二维字符数组results。
c) 5次调用trans10to16函数,将numbers中的数据转换为16进制,
并存入results中(每一行存放一个四位的16进制数)。
#include <stdio.h>
#include <stdlib.h>
char s[] = "0123456789ABCDEF";
void trans10to16(int n,char *a)
{
if(n==0)
return;
*a = s[n%16];
a--;
trans10to16(n/16,a);
}
int main()
{
for(int n=0;n<5;n++)
{
int d;
scanf("%d",&d);
d%=65536;
char results[4];
for(int j=0;j<4;j++)
results[j] = '0';
trans10to16(d,results+3);
printf("%d is translated to ",d);
for(int j=0;j<4;j++)
{
printf("%c",results[j]);
}
printf("\n");
}
system("pause");
return 0;
}