c++中的RANDOM()函数怎么使用?

我想取1-100之间的整数!为什么作了一个10次的循环,用random输出的都是一个数呀?是不是应该输出10个不同的数呀??我刚学习C++不懂,谢谢大家能帮我做详细解答!... 我想取1-100之间的整数!
为什么作了一个10次的循环,用random输出的都是一个数呀?是不是应该输出10个不同的数呀??我刚学习C++不懂,谢谢大家能帮我做详细解答!

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{

for (int i=0;i<10;i++)
{
randomize();
unsigned int r=random(100);
cout<<r<<'\t';
}
return 0;
}

是这个样子吗??不行呀??
展开
 我来答
边秉01U
2018-07-20 · TA获得超过3180个赞
知道答主
回答量:143
采纳率:100%
帮助的人:12.3万
展开全部

方法:
rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。

rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。

在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。

rand()函数需要的头文件是:<stdlib.h>

rand()函数原型:int rand(void);

使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100;

C++中的rand( )应该小写,需要加载<stdlib.h>头文件

拓展资料

rand( )函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。

云云说教育
2018-08-02 · 教育领域爱好者
云云说教育
采纳数:630 获赞数:403523

向TA提问 私信TA
展开全部

// C++随机函数(VC program) 

#include <stdio.h> 

#include <iostream> 

#include <time.h> 

using namespace std; 

#define MAX 100 

int main(int argc, char* argv[]) 

srand( (unsigned)time( NULL ) );//srand()函数产生一个以当前时间开始的机种子.应该放在for等循环语句前面 不然要很长时间等待

for (int i=0;i<10;i++) 

cout<<rand()%MAX<<endl;//MAX为最大值,其随机域为0~MAX-1

return 0; 

}

拓展资料

C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。可以解决的方法有两个:

可改用C++下的rand函数来实现。C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhang13975hz
2015-09-27 · TA获得超过6029个赞
知道大有可为答主
回答量:1542
采纳率:95%
帮助的人:425万
展开全部

random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。可以解决的方法有两个:

  1. 可改用C++下的rand函数来实现。C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。例如,

    // C++随机函数(VC program) 

    #include <stdio.h> 

    #include <iostream> 

    #include <time.h> 

    using namespace std; 

    #define MAX 100 

    int main(int argc, char* argv[]) 

           srand( (unsigned)time( NULL ) );//srand()函数产生一个以当前时间开始的机种子.应该放在for等循环语句前面 不然要很长时间等待

    for (int i=0;i<10;i++) 

    cout<<rand()%MAX<<endl;//MAX为最大值,其随机域为0~MAX-1

       return 0; 

    }

  2. 还有一种方法可以使C++调用C的函数,因为C++的编译器对函数的处理和C不同,所以往往即使包含了相关的头文件,也会使得声明是错误的。解决方法是使用extern“C”标识符来声明旧版C库函数。例如,

    extern "C" {
    int random(int);
    }

    int main(int argc , char* args[])
    {

            int i,r;

            i=100;
            r=random(i);
            cout<<r<<endl;

            return 0;
    }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2005-11-01
展开全部
C++中有RANDOM函数吗?
如果是Rand到时可以

srand( (unsigned)time(NULL)); //生成种子

r = rand()%100;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热木香
2005-11-01
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
首先要调用一个randomize();
让种子化,然后random(100);就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式