#include<stdio.h>int main(){ int x; scanf("%d\n",&x); int a=0;while(x%2!=0) { x=x%2; a=a+1; }printf("一个正整数x在二进制下的位数:%d\n",a);return 0; }各位大神,能不能告诉我这个程序错在哪里
1 回答
MinRam
TA贡献87条经验 获得超24个赞
循环体错了。(循环判断和里面的算法都错了)
int x = 4 // 假设让x = 4 ,则x的二进制为 100b while(x%2!=0) // 显然进入不了循环 { x=x%2; // x经过这次运算 4->0 显然未达到缩减一位二进制位的目的 a=a+1; }
自己尝试改下。如果还是不懂请追问。
- 1 回答
- 0 关注
- 1779 浏览
添加回答
举报
0/150
提交
取消