#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 關注
- 1817 瀏覽
添加回答
舉報
0/150
提交
取消