用c++生成随机数 为什么每次结果都一样 如何控制结果在0~1000之内

srand(unsigned(time(0)));
int a[500];
int i=0;
for(;i<500;i++);
{
a[i]=rand();

}

1 C++的随机数函数rand是一个伪随机数,从固定的初始种子计算得出。所以每次运行获取到的随机数序列是相同的。要解决这一问题,需要设置一个随机数种子,一般用当前时间作为种子。

代码为

srand(time(NULL));

2 要控制随机数的范围,可以使用模除操作,即%运算。

要控制结果在0~1000之间,可以使用代码

rand()%1001


具体代码如下:

#include<iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand(time(NULL));
    int a = rand()%1001;
    cout <<a;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-04
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{

int a[500];
int i=0;
srand(unsigned(time(NULL)));
for(;i<500;i++)//;这里多了一个分号
{
a[i]=rand()%1001;//这样就控制 在了0~1000范围内了
printf("%d\n",a[i]);
}
return 0;

}本回答被提问者采纳
第2个回答  2012-03-03
a[i]=rand()%1001;
第3个回答  2012-03-03
同样求解
相似回答