编写程序将输入的十进制整数转换成二进制并输出,要求程序中编写一个函数实现对于任何一个十进制整数。

2024-11-16 06:43:01
推荐回答(2个)
回答(1):

#include

void dec2bin(int n)

{if(n>1)dec2bin(n/2);

printf("%d",n%2);

}

int main()

{int x;

scanf("%d",&x);

dec2bin(x);

printf("\n");

return 0;

}

回答(2):

假定 十进制整数 >= 0;
#include
char * dto2(int x, char *s){
int y,i=0,L;
y=x;
while(1){
s[i]= y%2 + '0';
y=y/2;
i++;
if (y==0) break;
}
s[i]='\0';
L=strlen(s);
for (i=0;ireturn s;
}

int main()
{
int x;
char s[50];
printf("input positive int x:\n");
scanf("%d",&x);
if (x<0) {printf("x must be >=0\n"); return 1; };
dto2(x, s);
printf("%s",s );
return 0;
}
====
你可以直接用 系统里的函数 itoa(a,s,2); 何必舍近求远。当然,做做练习也不是不可以。