在以下代码中使用WHILE LOOP的正确方法是什么?

时间:2014-01-30 21:22:55

标签: c

问。编写一个读取正整数的程序,然后找到大于或等于读取数的2的最小幂。例如,如果程序读取值25,则应注意32 = 2 ^ 5是2的最小幂,大于或等于25.

我的方法:

**

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num1, n;
    int num2 = 2^n;
    printf("Please type in num1: ");
    scanf("%d", &num1);
    n = 0;
    while (num1 > num2)
    {
        n=n+1;
    }
    printf("The power value is %d", n);
    return (0);
}

** 我还是个初学者......

2 个答案:

答案 0 :(得分:1)

当你的循环开始时,num1有一些特定的值,num2有另一个值。

每次循环播放时,都不会更改 值 所以表达式将永远保持真实,循环将永远运行,永不退出!

如果希望循环最终结束,则必须以某种方式更改循环的表达式! 您应该在循环中修改num1num2的值。

答案 1 :(得分:0)

  1. 试试这是算法快速

    int a, b = 1;
    printf("Enter no \n");
    scanf("%d",&a);
    while (a >= b)
    {
        b  = b << 1 ;
    }
    printf("%d",b);