编程实现:采用指针实现把任意十进制正整数转换成二进制数。要求定义一个函数void dtob(int *p, int d),实现十进制整数转换成二进制数的功能

二进制数以字符串方式保存,十进制数到二进制的转换是除以二,余数倒着排列

你题目的解答代码如下:

#include <stdio.h>
void dtob(char *p, int d)
{
    int i, n = 0;
    int v;
    char c;
    do
    {
        v = d % 2;
        p[n] = v + '0';
        d /= 2;
        n++;
    } while (d > 0);
    //s中余数是倒着排列的, 要把s字符串反转一下
    for (i = 0; i < n / 2; i++)
    {
        c = p[i];
        p[i] = p[n-1-i];
        p[n-1-i] = c;
    };
    p[n] = '\0';
}
int main()
{
    int d;
    char s[1000];
    scanf("%d", &d);
    dtob(s,d);
    printf("%s\n", s);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img


#include <stdio.h>
void dtob(int* p, int d)
{
    int num[1024] = {-1};
    int i = 0;
    while (d!=0)
    {
        num[i] = d % 2;
        d /= 2;
        i++;
    }
    for (int j = i-1,k = 0; j >= 0; j--,k++)
    {
        p[k] = num[j];
        printf("%d", p[k]);
    }
}
int main()
{
    int p[1024] = {0};
    int d;
    scanf("%d",&d);
    dtob(p, d);
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632