用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();

}
展开
 我来答
风若远去何人留
推荐于2017-10-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

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;
}
百度网友28b4182
推荐于2017-10-04 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1833万
展开全部
#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;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦海瑶s1
2012-03-03 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:755万
展开全部
a[i]=rand()%1001;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
one654360597
2012-03-03
知道答主
回答量:5
采纳率:0%
帮助的人:8218
展开全部
同样求解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式