c语言数组进制转换的问题

img

img


实在写不出来了。。,代码写得复杂而且是错误的。不知道更好的思路

最难的转十六进制

#include <stdio.h>
/*10进制转换为16进制*/
int sum(unsigned a,char buf[])
{
    int chu, yu;
    chu=a/16;
    yu=a%16;
    if(chu==0)
    {
        printf("%c",buf[yu]);
    }
    else
    {
        sum(chu,buf);
        printf("%c",buf[yu]);
    }
}
int main(void)
{
    int a;
    char buf[16]="0123456789ABCDEF";
    printf("请输入10进制数:");
    scanf("%d",&a);
    printf("转化后的16制数为:");
    sum(a,buf);
    return 0;
}
其他思路相似