编写一个程序,输入十进制数,可以转化为其他进制

编写一个程序,输入一个十进制数,回车,可以将其转换位相对应的2进制,8进制,16进制数,请教一下流程

img


#include <stdio.h>
int main(){
    int x; 
    scanf("%d",&x);
    int t=x;
    int a[100]; //存放余数 
    int count=0;
    do{
        a[count++]=x%2;
        x=x/2;
    }while(x!=0);//当商不为0时进行循环 
    printf("二进制数为:");
    for(int i=count-1;i>=0;i--){
        printf("%d",a[i]);
    }
    printf("\n");
    printf("八进制数为:%o\n",t);
    printf("十六进制数为:%x\n",t);
} 

#include <stdio.h>

/// @brief 进制转换
/// @param n 要转换数字
/// @param d 进制
/// @param s 存储结果字符串
/// @param len 字符串长度
/// @return 结果长度
int conv(int n, int d, char *s, int len)
{
    if (n == 0)
    {
        *s = '\0';
        return len;
    }

    int t = n % d;

    if (t > 9)
        *s = t - 10 + 'A';
    else
        *s = t + '0';

    len = conv(n / d, d, s + 1, len + 1);
    return len;
}

char *re(int n, int d, char *s)
{
    int len = conv(n, d, s, 0);
    char t, *p = s + len - 1, *q = s;
    while (p > q)
    {
        t = *p;
        *p = *q;
        *q = t;
        p--, q++;
    }

    return s;
}

int main()
{
    int n = 1234;
    char str[100];

    scanf("%d", &n);

    printf("%s\n", re(n, 2, str));
    printf("%s\n", re(n, 8, str));
    printf("%s\n", re(n, 16, str));

    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^