如何创建一个函数用于生成 0-100 之间不重复的随机数 rand();总是会出现重复 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if(重复) then(rand();)else 记录 rand()%100就是0-100间的随机数放到数组里面,新形成的判断是否重复,重复重新形成 int i; srand( (unsigned)time( NULL ) ); for( i = 0; i < 10;i++ ) printf( " %6d\n", rand()%100 );没有你说的数字最高两位是递增的情况,你的产生过程是否有问题,如果不重复的话,你希望在多大范围不重复呢,如果产生很多的话,按照鸽笼原理,肯定会有重复的吧 函数体外,使用 srand((unsigned)time(NULL)); 播种. #include "time.h"#define MAX_NUM 100int flag[100]; 循环调用GetOnceNum()的循环体中不可包括 srand,否则出现搂主的问题.int GetOnceNum(){int m_iRand;m_iRand = rand()% MAX_NUM;int isOnce = 1;//线性探测已出现数据while(flag[m_iRand]) //flag[i]为1表示已产生过,0表示未产生。{ if (m_iRand >= MAX_NUM - 1) { if (isOnce) { isOnce = 0; m_iRand = 0; } else return -1; } else m_iRand++;} flag[m_iRand] = 1; return m_iRand;} 如何实现dll间通信 急:在桌面背景上绘画后,如何保证桌面图标显示正常 哪位仁兄还保留着DOS环境下连接SQL的VC静态库DB-LIB 如何把图片添加到按钮上面?? =======求助:关于日期和时间(解决后,立即给分)======= 誰有封裝好的ADO,最好有文檔的?先謝謝了! 如何的到文件的特征代码代码? Tab控件的使用 寻找:C++下有实现类似C# datatable的开源代码吗? 请教:CCmdTarget::OnCmdMsg中的pExtra是什么东东! 急!!! 数组无效?? 单文档和一个HtmlView,一个EditView的问题
then(rand();)
else
记录
放到数组里面,新形成的判断是否重复,重复重新形成
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand()%100 );
没有你说的数字最高两位是递增的情况,你的产生过程是否有问题,如果不重复的话,你希望在多大范围不重复呢,如果产生很多的话,按照鸽笼原理,肯定会有重复的吧
#define MAX_NUM 100
int flag[100]; 循环调用GetOnceNum()的循环体中不可包括 srand,否则出现搂主的问题.int GetOnceNum()
{
int m_iRand;m_iRand = rand()% MAX_NUM;int isOnce = 1;//线性探测已出现数据
while(flag[m_iRand]) //flag[i]为1表示已产生过,0表示未产生。
{
if (m_iRand >= MAX_NUM - 1)
{
if (isOnce)
{
isOnce = 0;
m_iRand = 0;
}
else
return -1;
}
else
m_iRand++;
} flag[m_iRand] = 1;
return m_iRand;
}