#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");
}
#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 你赋值没有。。。