作者st880517 ()
看板C_and_CPP
標題Re: [問題] Void與副程式
時間Fri Mar 3 19:24:52 2017
雖然問題是解決了,不過又有另一個問題^^"
(怎麼問題一直跑出來...)
目前程式中有設計亂數產生機制
但由於我的亂數範圍是取決於矩陣內的數字
因此我把亂數寫成這樣:
這是矩陣內的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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1488540294.A.420.html
1F:推 chuegou: %+是啥03/03 19:45
阿多打的xD"
已更正
※ 編輯: st880517 (49.215.100.5), 03/03/2017 20:03:18
2F:→ ssdoz2sk: d[0] 一開始沒有初始化,所以 d[1] = rand + d[0]時出03/03 20:45
3F:→ ssdoz2sk: 來的值可能什麼都有03/03 20:45
4F:→ ssdoz2sk: 等等,我看錯:p抱歉,看錯03/03 20:45
5F:推 ssdoz2sk: d[1]時 i=2 ,所以是(0~17)+903/03 20:50
咦?所以照著我原本的寫法是沒辦法將變數的範圍介於9~17之間嗎?
※ 編輯: st880517 (58.114.163.173), 03/03/2017 21:21:42
6F:推 laladeer: rand()%8+903/03 22:02
7F:推 chuegou: 你需要的是數學課本03/03 22:58
Orz真的...不過看了ss大的解答再研究一下總算是寫出來了QQ
※ 編輯: st880517 (58.114.163.173), 03/04/2017 00:21:35
8F:→ TobyH4cker: 8+9無誤 03/04 17:33
9F:→ TobyH4cker: %區間數量+起始 大概是這樣吧 03/04 17:34
10F:→ CoNsTaR: % 8+9 XDDDD 03/04 17:38