请问各位老师用C++编一个小程序可以实现产生1---8之间的随机数该怎样编写?主要是要用到随机函数"randomize()" ( 积分: 1

  • 主题发起人 主题发起人 lookchina
  • 开始时间 开始时间
L

lookchina

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位老师用C++编一个小程序可以实现产生1---8之间的随机数该怎样编写?主要是要用到随机函数"randomize()"
( 积分: 100 )
<br />C++我是新手,我想问你一下用C++编一个小程序可以实现产生1---8之间不重复的随机数该怎样编写?主要是要用到随机函数&quot;randomize()&quot;,希望能给几个例子看看.
 
C++我是新手,我想问你一下用C++编一个小程序可以实现产生1---8之间不重复的随机数该怎样编写?主要是要用到随机函数&quot;randomize()&quot;,希望能给几个例子看看.
 
大家要是有知道的就帮个忙,急需.
 
int i=random(8);
 
就这一句就可以实现啊!
 
解决的问题是这样的:编制一个赛道分配程序,每个运动员有一条赛道,随机分配,但不能出现相同的赛道!
 
用数组
static int a[9]={ 0,1,2,3,4,5,6,7,8};
int i, temp;
然后随机产生数组下标,交换数组元素
randomize();
i = 1 + random (8);
temp = a;
a = a[8 - i];
a[8 - i] = temp;
//多做几次就行了
 
#include <iostream>
#include <time.h>
using namespace std;
void getrand(int b[8])
{
int icount = 0;
int tmp = 0;
int a[8] = {-1,-1,-1,-1,-1,-1,-1,-1};
srand( (unsigned)time( NULL ) );

while(icount!=8)
{
tmp = rand() % 8;
if (a[tmp] != -1)
continue;
else
{
b[icount++] = tmp + 1; a[tmp] = tmp + 1;
}
}
}
int main(int argc, char *argv[], char *env[])
{
int a[8];
int i;
getrand(a);
for( i=0;
i<8 ;
i++)
cout << a << endl ;
}
如果需要连续调用getrand()函数多次,则srand( (unsigned)time( NULL ) );
必须修改,因为如果两次调用间隔时间太短,则可能产生相同的两串数列.
 
多人接受答案了。
 
后退
顶部