C语言程序设计中的进制转换问题

问题:从键盘上读取任意的十进制数;
1.用二进制表示读取到的十进制数
2.用十六进制表示读取到的十进制数

如下

img

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num;
    char buff[255];
    scanf("%d",&num);
    itoa(num,buff,2);
    puts(buff);
    itoa(num,buff,16);
    puts(buff);
    return 0;
}


int con(char *buf, int n, int base)
{
    int i = 0, t;
    char tc;
    while (n)
    {
        t = n % base;
        if (t > 9)
            buf[i] = t - 10 + 'A';
        else
            buf[i] = t + '0';
        n /= base;
        i++;
    }
    i--;
    t = 0;
    while (t <= i / 2)
    {
        tc = buf[i - t];
        buf[i - t] = buf[t];
        buf[t] = tc;
        t++;
    }
    buf[i + 1] = '\0';
    return i;
}
int main()
{
    char buf[100];
    con(buf, 1002, 2);
    printf("%s\n", buf);
    con(buf, 1002, 16);
    printf("%s\n", buf);

    return 0;
}

本人是C语言初学者,能不能尽量不要使用指针解决问题

看这个是否有用
https://b23.tv/fOVROtz