关于此循环的建议,将十进制数字打印成二进制数

时间:2015-09-18 14:43:12

标签: c loops binary

所以我的循环遇到了一些问题。我试图将小数转换为它的二进制表示,但循环只迭代一次。有小费吗? (我是C btw的新手)。提前谢谢!

#include <stdio.h>

int main(void) 
{   
    int a,x;

    scanf("%i ", &a);

    if((a>0))            
    {
        x=a/2; 
        x=x*2;
        if ((x!=a))      
        {
            printf("1"); 
            a=(a-.5)/2;
        }
        else
        {
            printf("0");
            a=a/2;
        }

    }
    return 0;
}

1 个答案:

答案 0 :(得分:4)

问题是你没有循环。 if检查一次条件并执行某些操作。如果使用while,则会持续运行,直到条件为假。所以你需要改变这个:

if((a>0)) {

到此

while(a > 0) {

另外,请以scanf格式删除空格:

scanf("%i", &a);

否则按Enter键时无法完成。