程序代码:#include <stdio.h>
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
int i_ju=0;
void dec2bin(int source,char* bin)
{
if(source==0) return;
dec2bin(source/2,bin);
bin[i_ju++]=(char)(source%2+0x30);
}
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
//这个函数是个错误函数,可是不知道哪里错了
void _dec2bin(int source,char* bin)
{
if(source==0) return;
_dec2bin(source/2,bin);
*(i_ju+bin)=(char)(source%2+0x30);
i_ju++;
}
int main()
{
char source[20];
for(int i=0;i<20;i++) source[i]='\0';
dec2bin(24,source);
printf("注意这里能得到正确的字串24(10)=%s(2)\n",source);
i_ju = 0;
for(int i=0;i<20;i++) source[i]='\0'; //建议lz在这里把i定义为局部变量,不然i会变为全局变量的i,这样很容易影响到其他函数中的全局变量i;
_dec2bin(24,source);
printf("提示: 这里无法得到正确的字串24(10)=%s(2)\n",source);
return 0;
}
//已经尽我所能的尊重原版了...

I have not failed completely








