将十进制数转换成十六进制数。
函数接口定义:
void c10_16(char p[],int b);
其中 p
和 b
都是用户传入的参数。 函数十进制数 b
转换成十六进制数放在p
数组中。
裁判测试程序样例:
#include <stdio.h>
void c10_16(char p[],int b);
int main()
{
int a,i;
char s[20];
scanf("%d",&a);
c10_16(s,a);
for(i=strlen(s)-1;i>=0;i--) printf("%c",s[i]);
printf("\n");
return 0;
}
/* 请在这里填写答案 */
输入样例:56
输出样例:38
因为这个主函数是逆向输出字符组的,所以函数里我们的得到的字符组也是倒序的,上代码
void c10_16(char p[],int b){
int now,num=b,i=0;
while(num>0){
now=num%16;
num/=16;
if(now>=10)p[i]=now-10+'A';
else p[i]=now+'0';
i++;
}
p[i]='\0';
}
如果是10进制转为8进制或者2进制,原理是一样的,修改一下数字即可