[問題] pow的問題in C
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
10/07 00:34, 1F
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章