作者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/cn.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