用c++生成随机数 为什么每次结果都一样 如何控制结果在0~1000之内
srand(unsigned(time(0)));inta[500];inti=0;for(;i<500;i++);{a[i]=rand();}...
srand(unsigned(time(0)));
int a[500];
int i=0;
for(;i<500;i++);
{
a[i]=rand();
} 展开
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;
}
展开全部
#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;
}
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[i]=rand()%1001;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询