Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 关于将十进制数打印成二进制的循环的建议_C_Loops_Binary - Fatal编程技术网

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

C 关于将十进制数打印成二进制的循环的建议,c,loops,binary,C,Loops,Binary,所以我的循环有一些问题。我试图将十进制转换为二进制表示,但循环只迭代一次。有什么建议吗?(顺便说一句,我是新来的)。提前谢谢 #include <stdio.h> int main(void) { int a,x; scanf("%i ", &a); if((a>0)) { x=a/2; x=x*2; if ((x!=a))

所以我的循环有一些问题。我试图将十进制转换为二进制表示,但循环只迭代一次。有什么建议吗?(顺便说一句,我是新来的)。提前谢谢

#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;
}
#包括
内部主(空)
{   
int a,x;
scanf(“%i”和“&a”);
如果((a>0))
{
x=a/2;
x=x*2;
如果((x!=a))
{
printf(“1”);
a=(a-.5)/2;
}
其他的
{
printf(“0”);
a=a/2;
}
}
返回0;
}

问题在于没有循环。
if
检查一次条件并执行一些操作。如果在期间使用
,则会持续运行,直到条件为false。因此,您需要改变这一点:

if((a>0)) {
对此

while(a > 0) {
另外,清除
scanf
格式中的空格:

scanf("%i", &a);

否则,当您按Enter键时,它将无法完成。

问题在于您没有循环。
if
检查一次条件并执行一些操作。如果在
期间使用
,则会持续运行,直到条件为false。因此,您需要改变这一点:

if((a>0)) {
对此

while(a > 0) {
另外,清除
scanf
格式中的空格:

scanf("%i", &a);

否则,当您按Enter键时,它将无法完成。

您的代码或问题的哪部分是“十进制”?十进制将是我从scanfDid获得的任何数字。您尝试在实际的调试器中调试您的代码?如果在二进制数字计算机上运行,您将不会得到“十进制”,而是。。。binary.@CarlosM.Navarro
scanf(“i”,…
不要求输入为十进制。您得到的数字只是一个数字。您的代码或问题的哪一部分是“十进制”?小数点将是我从scanfDid获得的任何数字。您尝试在实际调试器中调试代码吗?如果在二进制数字计算机上运行,您将不会得到“小数点”,而是…二进制。@CarlosM.Navarro
scanf(“i”,…
不要求输入为十进制。您得到的数字只是一个数字。如果
a==0
,则(a>0){
do{…}时不打印任何内容,而(a)
修复了这一问题。负数是另一个问题。如果
a==0
,则
而(a>0){
do{…}时不打印任何内容while(a)
解决了这个问题。负数是另一个问题。