c语言中rand()函数怎么用?

我用C语言编程想得到一个随机数,用了这样一个语句m=rand(),可是系统说rand函数没有定义.不知道怎么回事.应该怎么用呢?希望明白人点化并说明一下.多谢!... 我用C语言编程想得到一个随机数,用了这样一个语句
m=rand(),可是系统说rand函数没有定义.不知道怎么回事.应该怎么用呢?希望明白人点化并说明一下.多谢!
展开
 我来答
风若远去何人留
推荐于2017-09-29 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

rand函数功能为获取一个伪随机数(伪随机数的概念下面会有介绍)。

一、函数名: 

rand();


二、声明:

int rand();


三、所在头文件:

stdlib.h


四、功能:

返回一个伪随机数。之所以说是伪随机数,是因为在没有其它操作下,每次执行同一个程序,调用rand得到的随机数序列是固定的(不是真正的“随机”)。


五、为了使rand的结果更“真”一些,也就是令其返回值更具有随机性(不确定性),C语言在stdlib.h中还提供了srand函数,通过该函数可以设置一个随机数种子,一般用当前时间的毫秒数来做参数。通过time(NULL)可以获取到当前时间的毫秒值(该函数位于time.h)中。


六、使用rand的流程可以总结为:

1 调用srand(time(NULL))设置随机数种子。

2 调用rand函数获取一个或一系列随机数。

需要注意的是,srand只需要在所有rand调用前,被调用一次即可,没必要调用多次。


七、以下是随机获取10个整型值并输出的例子,辅助理解。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int i;
    
    srand(time(NULL));//设置随机数种子。
    
    for(i = 0; i < 10; i ++)//运行10次。
        printf("%d\n", rand());//每次获取一个随机数并输出。
    
    return 0;
}
_me
推荐于2017-10-09 · TA获得超过839个赞
知道答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
rand(产生随机数)
相关函数
srand

表头文件
#include<stdlib.h>

定义函数
int rand(void)

函数说明
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。

返回值
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。

范例
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}

执行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6

srand(设置随机数种子)
相关函数
rand

表头文件
#include<stdlib.h>

定义函数
void srand (unsigned int seed);

函数说明
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

返回值

范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}

执行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chang290
2006-03-13 · TA获得超过517个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:0
展开全部
按楼上的做基本上就可以了。
下面是一个简单的实例
srand(time(0)); 的目的是使的每次产生的随机数不同。如下:
#include "stdafx.h"
#include "time.h"
#include "stdlib.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
for(int i=0;i<100;i++)
cout<<rand()<<'\t'<<endl;
return 0;
}
这里没有调用 srand 函数,你两次运行程序看一下所产生的数是不是一样,然后将 srand(time(0))加入到 for 的上面就不一样了。
srand(time(0));
for(int i=0;i<100;i++)
cout<<rand()<<'\t'<<endl;
return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GNBApsy
2006-03-13 · 超过23用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
#inlcude<stdlib.h>
rand()返回一个0~32767的整数
用之前要先调用srand(),才能让每次的随机数不一样

要#include<time.h>
然后srand(time(0));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳絮追风
2006-03-18 · TA获得超过142个赞
知道答主
回答量:109
采纳率:0%
帮助的人:0
展开全部
加这行:#inlcude<stdlib.h>
rand()返回一个0~32767的整数
比如m=rand(35),将从0-35中随机取一个值赋给m
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式