猿问

有关十进制转换二进制的问题。。。。

include"stdio.h"


#include <string.h>


reverse(char s[])


{


        int temp,i,j;


        for(i=0,j=strlen(s)-1;i<j;i++,j--)


        {  


                    temp=s[i];


                    s[i]=s[j];


                    s[j]=temp;


        }


}


main( )


{


            char bin[20];   


            unsigned n,i=0;


            printf("Input a data");


            scanf("%d",&n);


            do


            {


                      bin[i++]=n%2;

            }while((n/=2)!=0);


            bin[i]='\0';


            reverse(bin);


            puts(bin);


}

为什么我输入后输出结果为空。。。

慕后端8527005
浏览 1005回答 1
1回答

onemoo

我没有细看你代码的逻辑。只指出一点,也是你之前搞混的内容:你这里仍然是错误地使用了字符数组。bin 是 char 数组,但是你并没有向其中存入正确的“字符”,你直接存入了 n%2 这样的整形值。就像我之前解释的那样,puts 是无法输出你想要的字符串的。
随时随地看视频慕课网APP
我要回答