99问答网
所有问题
c语言用宏判断数问题 判断一个数是不是2的n次幂 总是段错误
求个正确能调试运行的代码 也是通过宏定义判断的
举报该问题
推荐答案 2014-01-25
#include <stdio.h>
//取反加1后与原数相与还是等于原来的那个数就说明是2的n次幂
#define S(n) ( ((n & ((~n) + 1))) ==n)
int main()
{
int i;
while (1)
{
scanf("%d",&i);//改成 &
if(S(i))
printf("%d,Y\n",i);
else
printf("%d,N\n",i);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/eveeWWteeXeeeeBBzv.html
其他回答
第1个回答 2014-01-25
你再S(i)加个括号试试。 (S(I))
相似回答
C语言
,这题解释
是不是
错了
答:
这个解释没有错,我想你是觉得,k=&p,那么之后p怎么变,k指向的位置没有变,所以觉得有问题吧?但是你要仔细看,k是没有变,但是k指向的是“指向p的指针”,所以*k总能得到新的p,对吧。当p向前移动了,*k得到的就是移动后的p,那么**k得到的当然就是新指向的a数组中的元素了。
大家正在搜
c语言的宏是怎么处理的
c语言闰年的判断编程
c语言编程判断素数
C语言宏函数怎么用
c语言宏可以用中文吗
c语言宏展开是什么
c语言宏定义和宏替换
c语言中宏定义是什么
C语言的宏
相关问题
C语言问题:编写一个带参数的宏,判断一个数是否在下面数列中
C语言 关于判断回文数的程序
C语言的宏定义问题
C语言中求N个数据的的和
用C语言编程:输入一个整数,判断这个数是奇数还是偶数。
c语言里面怎么判断一个数是不是整数?有没有相关的函数?
c语言怎么判断一个数是不是整数
c语言 int最大值是多少??