看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) printf出來的答案不對 希望得到的正確結果: 00111110 程式跑出來的錯誤結果: 0111928XXXXXX(反正是一個錯誤答案) 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) main() { int n=62; int temp=0; int result=0; int i,j; while (n/2>0) { for(i=0;i<=8;i++){ temp=(n%2)*10^i; n=n/2; result+=temp; if(n==0){ for(j=8-i;j<0;j--) printf("%d",0); } printf("%d",result); } } system("PAUSE"); return 0; } 補充說明: 我想把62(10進位)改成2進位顯示出來而已 要顯示8bits 所以希望出來的答案是=0011111110 不知版上高手可否指點一下迷津 哪裡錯了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.9.135.204
freesamael:for(i=0;i<=8;i++) 這個迴圈會跑9次 04/26 13:52
freesamael:for(j=8-i;j<0;j--) 這個迴圈永遠都不會跑 04/26 13:52
freesamael:還有程式縮排一下 04/26 13:53
in09:這樣的東西,與其用問的,不如自己好好 trace 一遍, 才能學會 04/26 13:53
zaq3333:n不會==0嗎? 04/26 13:55
hhashoww:如果n是0的話 while的條件? 04/26 14:59
walker2009:剛開始學的時候迴圈常會少算或多算一次 要仔細想想XD 04/26 16:01
cfbbq:10^i? 並非你所想的 04/27 00:46
dastard123:10^i 改成 pow(10,i) 04/27 15:58