简单问题,菜鸟困惑,请教高手……
题目是输入任意整数,问它是否是2的n次方,若不是,输出error,若是,求出n值;我的程序如下,可以运行,但是无论输入什么都是输出error,请教高手何故?多谢……
#include<stdio.h>
void main()
{
int y,n,result;
long num;
n=0;
printf("please input the number\n");
scanf("%d",&num);
loop:y=num%2; *y为余数;
if(num<=0) *如果输入负数或者0,输出error;
printf("ERROR\n");
else if(num==1) *如果输入1,则结果为0,因为1是2的0次方;
{
result=n;
printf("the result is %d\n",result);
}
else if(y==1) *如果输入的数不能被2整除,也输出error;
printf("ERROR\n");
else if(num/2==1) *如果当num为2的时候,次方数为当前n值+1;
{
n++;
result=n;
printf("the result is %d\n",result);
}
else
{
num=num/2;
n++;
goto loop;
}
}