各位高手:
我在用VC++写一程序的时候遇见一个问题,苦思不得其解,望各位指教。
问题,需要每次调用一个方法时产生8个不同的随机数,其中四个要求是奇数。其他的4个无要求。我用rand()发现不行,再其前面用srand(CTime.GetSecond)程序运行时会报错。应该如何解决呢?
谢谢各位高手。
我在用VC++写一程序的时候遇见一个问题,苦思不得其解,望各位指教。
问题,需要每次调用一个方法时产生8个不同的随机数,其中四个要求是奇数。其他的4个无要求。我用rand()发现不行,再其前面用srand(CTime.GetSecond)程序运行时会报错。应该如何解决呢?
谢谢各位高手。
解决方案 »
- 如何把矩形旋转角度?
- 对话框类on timer()是否会被其它成员函数抢占?
- 如何嵌套对话框啊?
- 如何给命令响应添加快捷方式,例如ctrl + c代表复制
- 如何从注册表读取MAC地址?
- 求助!
- ListCtrl的垂直滚动消息如何加???
- 在什么控件中可以动态的绘图?
- 请是什么错误:fatal error C1010: unexpected end of file while looking for precompiled header directive
- OBDC自动配置之后,如何测试数据源
- 看完了COM概念、OLE剪贴板、Automation后干吗???茫然中!!!
- 关于ActiveX aggregate的问题
至于产生偶数就太简单了!你用生成的随机数除以2判断一下是不是偶数不就可以了!
不是的话加上或减去一个1不就OK了吗!
你的方法我也试过,不行:(
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
while (li_Num%2==0)
{
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
//AfxMessageBox(s);
//s.Format("%d",li_Num);
}int li_RandNumOne = li_Num;
//第二个随机数
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
while (li_Num%2==0 || li_Num==li_RandNumOne) {
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
}
int li_RandNumTwo = li_Num;
//第三个随机数
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
while (li_Num%2==0 || li_Num==li_RandNumOne || li_Num==li_RandNumTwo) {
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
}
int li_RandNumThree = li_Num;
//第四个随机数
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
while (li_Num%2==0 || li_Num==li_RandNumOne || li_Num==li_RandNumTwo || li_Num==li_RandNumThree) {
li_Num = (int)(li_RowNumber * (rand()/RAND_MAX));
}
int li_RandNumFour = li_Num;看一下这段程序,在类的构造方法中也加入了srand((unsigned)time(NULL));但还是不行,一运行就进入死循环