[問題] 初新者寫的程式,但不知為何不對

看板C_and_CPP (C/C++)作者 (zaq)時間16年前 (2010/04/26 13:34), 編輯推噓1(108)
留言9則, 7人參與, 最新討論串1/1
( *[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

04/26 13:52, , 1F
for(i=0;i<=8;i++) 這個迴圈會跑9次
04/26 13:52, 1F

04/26 13:52, , 2F
for(j=8-i;j<0;j--) 這個迴圈永遠都不會跑
04/26 13:52, 2F

04/26 13:53, , 3F
還有程式縮排一下
04/26 13:53, 3F

04/26 13:53, , 4F
這樣的東西,與其用問的,不如自己好好 trace 一遍, 才能學會
04/26 13:53, 4F

04/26 13:55, , 5F
n不會==0嗎?
04/26 13:55, 5F

04/26 14:59, , 6F
如果n是0的話 while的條件?
04/26 14:59, 6F

04/26 16:01, , 7F
剛開始學的時候迴圈常會少算或多算一次 要仔細想想XD
04/26 16:01, 7F

04/27 00:46, , 8F
10^i? 並非你所想的
04/27 00:46, 8F

04/27 15:58, , 9F
10^i 改成 pow(10,i)
04/27 15:58, 9F
文章代碼(AID): #1BrINGx4 (C_and_CPP)
文章代碼(AID): #1BrINGx4 (C_and_CPP)