Re: [問題] Void與副程式

看板C_and_CPP作者時間8年前 (2017/03/03 19:24), 8年前編輯推噓4(406)
留言10則, 5人參與, 最新討論串2/2 (看更多)
雖然問題是解決了,不過又有另一個問題^^" (怎麼問題一直跑出來...) 目前程式中有設計亂數產生機制 但由於我的亂數範圍是取決於矩陣內的數字 因此我把亂數寫成這樣: 這是矩陣內的data pos[v]={0,9,18,20} v=3; srand(time(NULL)); for(int i=1;i<=v;i++) { d[i-1]=(rand()%pos[i])+pos[i-1]; d1[i-1]=(rand()%pos[i])+pos[i-1]; } 理論上跑出來的隨機數字應該會隨著矩陣內的數字不同而對應其範圍,但我有時侯跑出來 的結果是 d[1]=23 d1[1]=25 或是其他超出範圍的數字... 請問是我哪裡寫錯了嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.14.1.126 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1488540294.A.420.html

03/03 19:45, , 1F
%+是啥
03/03 19:45, 1F
阿多打的xD" 已更正 ※ 編輯: st880517 (49.215.100.5), 03/03/2017 20:03:18

03/03 20:45, , 2F
d[0] 一開始沒有初始化,所以 d[1] = rand + d[0]時出
03/03 20:45, 2F

03/03 20:45, , 3F
來的值可能什麼都有
03/03 20:45, 3F

03/03 20:45, , 4F
等等,我看錯:p抱歉,看錯
03/03 20:45, 4F

03/03 20:50, , 5F
d[1]時 i=2 ,所以是(0~17)+9
03/03 20:50, 5F
咦?所以照著我原本的寫法是沒辦法將變數的範圍介於9~17之間嗎? ※ 編輯: st880517 (58.114.163.173), 03/03/2017 21:21:42

03/03 22:02, , 6F
rand()%8+9
03/03 22:02, 6F

03/03 22:58, , 7F
你需要的是數學課本
03/03 22:58, 7F
Orz真的...不過看了ss大的解答再研究一下總算是寫出來了QQ ※ 編輯: st880517 (58.114.163.173), 03/04/2017 00:21:35

03/04 17:33, , 8F
8+9無誤
03/04 17:33, 8F

03/04 17:34, , 9F
%區間數量+起始 大概是這樣吧
03/04 17:34, 9F

03/04 17:38, , 10F
% 8+9 XDDDD
03/04 17:38, 10F
文章代碼(AID): #1OkLA6GW (C_and_CPP)
文章代碼(AID): #1OkLA6GW (C_and_CPP)