我在一次采访中得到了以下问题:“编写一个将数字四舍五入为 2 的下一个幂的 C 函数。”
我写了以下答案:
#include <stdio.h>
int next_pwr_of_2(int num)
{
int tmp;
do
{
num++;
tmp=num-1;
}
while (tmp & num != 0);
return num;
}
void main()
{
int num=9;
int next_pwr;
next_pwr=next_pwr_of_2(num);
printf(" %d \n",next_pwr);
}
问题是:为什么程序do-while
在达到值 11 和 10 时会跳出循环?