这个是大于0的十进制转换二进制。

img


我刚刚赋值了一下,但是这个for循环的结果怎么多出来一堆随机值,按理来说我用的calloc随机值应该全是0吧?、
我这个为什么错了?求解!




```#include<stdio.h>
#include<stdlib.h>
#define n 16
int main()
{
    int x;
    int i;
    int count=0;
    int* p = (int*) calloc(n,sizeof(int));
    printf("Please input an integer:\n");
    do
    {
        scanf("%d",&x);
    }while(x<0);
    while(x!=0)
    {
        *p=x%2;
        x=x/2;
        p++;
        count++;//指针增加的次数
    }
    p--;
    printf("the binary is:");
    for(i=0;i<=count;i++)
    {
        printf("%d",*p);
        p--;
    }
    printf("\n");
    free(p);
    return 0;
}

27行是i<count吧
另外
p++; ---这里 p要加1才行
printf("\n");