同样做函数,差距咋这么大呢 <本来以为自己能解决的,有些高估自己了>
程序代码:#include <stdio.h>
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
int i=0;
void dec2bin(int source,char* bin)
{
if(source==0) return;
dec2bin(source/2,bin);
bin[i]=(char)(source%2+0x30);
i++;
}
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
//这个函数是个错误函数,可是不知道哪里错了
void _dec2bin(int source,char* bin)
{
if(source==0) return;
_dec2bin(source/2,bin);
*bin=(char)(source%2+0x30);
bin++;
}
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);
for(i=0;i<20;i++) source[i]='\0';
_dec2bin(24,source);
printf("提示: 这里无法得到正确的字串24(10)=%s(2)\n",source);
return 0;
}
/*
实验结果:
D:\c_source\t1\Debug>t1
注意这里能得到正确的字串 24(10)=11000(2)
提示: 这里无法得到正确的字串24(10)=0(2)
*/[ 本帖最后由 wp231957 于 2012-12-3 18:55 编辑 ]










看不懂