C语言 十进制转2进制/八进制

十进制转二进制八进制十六进制怎么写
不能用%o%x直接输出

#include "stdio.h"

void ptf(int n,int r)
{
    int a[100];
    int i,j = 0;
    char c;
    do {
        a[j++] = n % r;
        n = n / r;
    } while (n > 0);
    for (i = j - 1; i >= 0; i--){
        c = a[i]>9?a[i]-10+'A':a[i]+'0';
        printf("%c",c);
    }
    printf("\n");
}
int main()
{
    int n;
    printf("请输入一个十进制整数:");
    scanf("%d", &n);
    printf("转化为二进制的数为:");
    ptf(n,2);
    printf("转化为八进制的数为:");
    ptf(n,8);
    printf("转化为十六进制的数为:");
    ptf(n,16);
}

img

如有帮助,望采纳!谢谢!