[問題] C語言問題

看板C_and_CPP作者 (YEI!)時間11年前 (2012/10/30 15:18), 編輯推噓0(0018)
留言18則, 7人參與, 最新討論串1/1
程式是用C語言寫的 因為程式很大 只截取有錯的地方 但不知道要怎修改 囧 NRVec<double> TT(2*N); if(TT[layer]%2!=0) TT[layer]=TT[layer]+1; else TT[layer]=TT[layer]; compile後 會出現'%' : illegal, left operand has type 'double' 後來我將程式修改成 NRVec<double> TT(2*N) two(1); two[1]=2; if(TT[layer]%two[1]!=0) TT[layer]=TT[layer]+1; else TT[layer]=TT[layer]; compile 還是不會過 可以請問一下要怎修改才有辦法讓程式跑嗎?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.2.121

10/30 15:20, , 1F
還是說%這個運算符號不能用在double的型態??
10/30 15:20, 1F

10/30 15:28, , 2F
知道了 浮點數運算要用fmod這個函數
10/30 15:28, 2F

10/30 17:17, , 3F
請問double怎麼取餘數?
10/30 17:17, 3F

10/30 18:09, , 4F
或許你可以宣告成 NRVec<int>
10/30 18:09, 4F

10/30 18:11, , 5F
或是如果你必須用 double 的話.. if(int(TT[layer])%2!=0)
10/30 18:11, 5F

10/30 18:15, , 6F
喔喔 原來還能這樣做 謝謝你
10/30 18:15, 6F

10/30 18:16, , 7F
double用fmod()就能做了 可以GOOGLE看一下
10/30 18:16, 7F

10/30 18:27, , 8F
請不要一開始教人改宣告好嗎…
10/30 18:27, 8F

10/30 19:25, , 9F
NRVec<double> c語言有這種?
10/30 19:25, 9F

10/30 23:55, , 10F
可以吧
10/30 23:55, 10F

10/31 00:30, , 11F
template 是 C++ 才有。
10/31 00:30, 11F

10/31 00:35, , 12F
單憑這一小片段的程式碼來看的話,我會選擇去改宣告。
10/31 00:35, 12F

10/31 00:36, , 13F
而且我會把 else TT[layer]=TT[layer]; 去掉。
10/31 00:36, 13F

10/31 18:41, , 14F
請問 NRVec<double> 這個怎麼用阿 我沒學過...
10/31 18:41, 14F

10/31 18:41, , 15F
這是c++吧
10/31 18:41, 15F

10/31 21:23, , 16F
不知道欸 我看以前學長這樣設就跟著這樣設了
10/31 21:23, 16F

10/31 21:23, , 17F
認真寫程式的時間沒有很長 但我一直都以為我寫的是C
10/31 21:23, 17F

10/31 22:45, , 18F
絕對是 C++
10/31 22:45, 18F
文章代碼(AID): #1GZtyoaQ (C_and_CPP)