程序有什么错误吗,为什么输入100后没有结果

img

img

#include<stdio.h>
#include<math.h>
int main()
{
    int a,i=0;
    scanf("%d",&a);
    int b;
    b=floor(a*1.0/2);
    while(1)
    {
        if(b==1)
        continue;
        else
        {
            b=floor(a*1.0/2);
            i++;
        }
        
    }
    printf("%d",i+1);
    return 0;
}

因为您每次迭代没有修改a的值导致b始终为50,陷入死循环

img


因为这样写,while循环并没法退出啊,死循环了,尝试改一下循环代码即可。
以上仅供参考,希望对题主有所帮助!

#include <stdio.h>

int main()
{
    int a;
    scanf("%d", &a);
    int n = 1;
    while (a > 1)
    {
        a /= 2;
        n++;
    }
    printf("%d", n);
    return 0;
}