不知道为什么没有输出,请求帮助

#include <stdio.h>
int dtob(int n,int p)
{
// 请在此添加代码
/
********* Begin ********/
int i;
for(i=0;(p+i)!=0;i++)
{
(p+i)=n%2;
n/=2;
}
(p+i)='\0';
/
******
End /
}
main( )
{
int n,j;
int a[20];
printf("Input the number:\n");
// 请在此添加代码
/
Begin /
scanf("%d",&n);
dtob(n,a);
/
* End **********/
printf("%d转换为二进制为:",n);
for(;j>0;j--)
printf("%2d",a[j-1]);
printf("\n");
}

img

#include <stdio.h>
int dtob(int n,int *p) {
    int i;
    for(i=0; n!=0; i++) {
        *(p+i)=n%2;
        n/=2;
    }
    return i;
}
main( ) {
    int n,j;
    int a[20];
    printf("Input the number:");
    
    scanf("%d",&n);
    j=dtob(n,a);

    printf("%d转换为二进制为:",n);
    for(; j>0; j--)
        printf("%d ",a[j-1]);
    printf("\n");
}


 有帮助请采纳

这个数组传参,形参的写错了,应该写成指针类型或者数组类型,而且对于数组传参,传的是指针,后面书写时需要解引用,另一个是,不完全初始化的数组里面的0位置位置,用\0作为判断不妥,要大改

大哥J 你赋值没有。。。