[問題] 函數宣告的問題...

看板C_and_CPP (C/C++)作者 (be)時間14年前 (2011/10/18 18:29), 編輯推噓0(0021)
留言21則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) c++ 問題(Question): double x[9999]={0}; double a double m double c x[i]=(a*x[i-1]+c)%m; 以上是我輸入的大概程式碼 但是一直有一個錯誤 error C2296: '%' : 不合法,左運算元具有型別 'double' error C2297: '%' : 不合法,右運算元具有型別 'double' 可是我確實是要輸出的值為有小數的 這是線性同餘法 所以改INT宣告變數的話反而什麼都讀不出值 不知道該怎樣修改 不知能否請教板上的高手 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.13.125

10/18 18:34, , 1F
板主看到你的標題會很生氣,另外 % 不能用在 double
10/18 18:34, 1F

10/18 18:34, , 2F
改標題可以用大寫T,不過我不知道你的問題怎麼解決
10/18 18:34, 2F

10/18 18:35, , 3F
餵狗 或是抄一遍primer
10/18 18:35, 3F

10/18 18:36, , 4F
primer沒有的話...就抄別本(死
10/18 18:36, 4F

10/18 18:36, , 5F
可是我想要X[I]跑出來是帶小數的...
10/18 18:36, 5F

10/18 18:36, , 6F
double型態為%lf...= =
10/18 18:36, 6F

10/18 18:36, , 7F
所以宣告只能用int???
10/18 18:36, 7F

10/18 18:37, , 8F
其實很簡單, 你只要回憶一下餘數的意義是什麼就知道怎麼
10/18 18:37, 8F

10/18 18:37, , 9F
自己寫一個了, 我想小學老師應該都有講過
10/18 18:37, 9F

10/18 18:37, , 10F
先把書翻一遍或孤狗ok!!? 這些問題都很基礎
10/18 18:37, 10F

10/18 19:04, , 11F
我滿好奇你是在哪一本書學到餘數可以有小數的
10/18 19:04, 11F

10/18 19:05, , 12F
兩邊都double的話你這樣的命令又要怎麼決定商的精度?
10/18 19:05, 12F

10/18 19:06, , 13F
%這個operator必須兩邊都是int,左邊不是int會幫你轉int
10/18 19:06, 13F

10/18 19:07, , 14F
所以要達到你的需求需要你手工打造算式
10/18 19:07, 14F

10/18 19:09, , 15F
sorry,我印象錯誤,不會幫你轉才對
10/18 19:09, 15F

10/18 19:09, , 16F
兩邊都要是explicit的整數
10/18 19:09, 16F

10/18 19:09, , 17F
會想用double去取餘數不是常人能想到的事情
10/18 19:09, 17F

10/18 20:12, , 18F
為什麼線性同餘法要用 double ?你的常數值設多少 ?
10/18 20:12, 18F

10/18 20:12, , 19F
目前大多用 unsigned 或 unsigned long long 都可以.
10/18 20:12, 19F

10/18 20:13, , 20F
用 floating 反而容易出包。
10/18 20:13, 20F

10/18 22:42, , 21F
可直接用fmod()
10/18 22:42, 21F
文章代碼(AID): #1EdLJqjn (C_and_CPP)
文章代碼(AID): #1EdLJqjn (C_and_CPP)