[問題] pow的問題in C

看板Programming作者 (一個人的行李)時間18年前 (2006/10/07 00:06), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/4 (看更多)
int a[10][4]; for(int i=0;i<10;i++) { for(int j=0;j<4;j++) { a[i][j]=(1+i)*pow(10 ,j); printf("%d\t",a[i][j]); } printf("\n"); } 用上面的程式可以跑出下面這個結果 1 10 100 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 6 60 600 6000 7 70 700 7000 8 80 800 8000 9 90 900 9000 10 100 1000 10000 但是我的問題是 它在debug時會出現一個warning 不過結果是有正確地跑出來 看書上寫 好像是pow函數裡面的參數要用double型態表示(?!) 於是我把 a[i][j]=(1+i)*pow(10 ,j); 改成 a[i][j]=(1+i)*pow(10.0 ,j); 結果和上面的問題一樣 跑的出來可是也有warning 後來把 int a[10][4]; 改成 double a[10][4];後 是沒warning了 可是最後數字全變成0 想請教各位這個warning到底是怎麼一回事? 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.148.242 ※ 編輯: bizza 來自: 218.166.148.242 (10/07 00:27)

10/07 00:34, , 1F
參數要用double的意思不是指10變10.0 = =
10/07 00:34, 1F
文章代碼(AID): #159dyHd8 (Programming)
文章代碼(AID): #159dyHd8 (Programming)