作者zaq3333 (zaq)
看板C_and_CPP
標題[問題] 初新者寫的程式,但不知為何不對
時間Mon Apr 26 13:34:03 2010
( *[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