这段代码那里有问题,顺利运行时单击Button2可以生成一个数字,为何相隔好久才会另一个变化数字

voidCcaipiaoxuanhaoDlg::OnBnClickedButton2(){inttemp,i;srand((int)time(0));intpnum[16... void CcaipiaoxuanhaoDlg::OnBnClickedButton2() { int temp,i; srand((int)time(0)); int pnum[16],lv[1]; for (i=0;i<16;i++) pnum[i]=i+1; temp = 1+(int)(1000.0 * rand() / (RAND_MAX + 1.0)); temp=temp%16; lvqiu[0]=pnum[temp]; m_num7=lv[0]; UpdateData(FALSE);// TODO: 在此添加控件通知处理程序代码 } 如何实现所显示的 m_num7的快速变化(现在代码无法达到快速变化,单击相隔很久才会变化),具有更好的随机性。 展开
 我来答
深深深00021
2015-04-10 · 超过55用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:134万
展开全部
void CcaipiaoxuanhaoDlg::OnBnClickedButton2() { int temp; srand(time(NULL)); // srand产生的是伪随机序列,用时间戳做种子,要经过一段时间,时间戳有较大变化时,伪随机序列随之变化,从而rand到不同的数 // 用下面伪随机数生成法得到序数,再取序列中该序数的随机数,可能变化会快一点,应该是时间戳变化,即得到变化的随机数,可能 // 能够每间隔1秒而有变化 for (int i=0; i<((time(NULL) * 10807L) & 0x7fffffffL)%100; i++) { rand(); } // rand() / (RAND_MAX + 1.0) // 产生的为0到1之间的数字,再乘以16后,分布在0到16之间,取整后得到0~15的整数 temp = (int)(16.0 * rand() / (RAND_MAX + 1.0)); m_num7=temp+1; UpdateData(FALSE);// TODO: 在此添加控件通知处理程序代码 } 試試這個行不行
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式