同样做函数,差距咋这么大呢 <本来以为自己能解决的,有些高估自己了>
程序代码:
#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 编辑 ]